PHP字符分割explode,split,preg_split性能比较

php中文网
发布: 2016-06-20 13:00:35
原创
1736人浏览过

PHP字符分割explode,split,preg_split性能比较

三个函数都是用来对字符串进行分割,下面分几个实验来比较之间的性能。

1. explode与split比较

都用字符进行分割,执行10次

代码:

for($num=0;$num<9;$num++)
{
    $stime=microtime();
    for($i=0;$i<10000;$i++)
    {
        explode(',','hello,world');
    }
    $etime=microtime();
    printf("explode takes %f \n",$etime-$stime);
}
for($num=0;$num<9;$num++)
{
    $stime=microtime();
    for($i=0;$i<10000;$i++)
    {
        split(',','hello,world');
    }
    $etime=microtime();
    printf("split takes %f \n",$etime-$stime);
}
登录后复制

结果:

立即学习PHP免费学习笔记(深入)”;

explode takes 0.009193
explode takes 0.007066
explode takes 0.007623
explode takes 0.005829
explode takes 0.005497
explode takes 0.005734
explode takes 0.005502
explode takes 0.005515
explode takes 0.005524
split takes 0.008976
split takes 0.008971
split takes 0.009030
split takes 0.009173
split takes 0.009913
split takes 0.012656
split takes 0.012153
split takes 0.009161
split takes 0.008948

结论:都用字符进行分割的情况下,explode性能优于split

 

split用正则进行分割:

代码:

for($num=0;$num<9;$num++)
{
    $stime=microtime();
    for($i=0;$i<10000;$i++)
    {
        explode(',','hello,world');
    }
    $etime=microtime();
    printf("explode takes %f \n",$etime-$stime);
}
for($num=0;$num<9;$num++)
{
    $stime=microtime();
    for($i=0;$i<10000;$i++)
    {
        split('/,/','hello,world');
    }
    $etime=microtime();
    printf("split takes %f \n",$etime-$stime);
}
登录后复制


结果:

explode takes 0.005649
explode takes 0.005719
explode takes 0.005792
explode takes 0.005975
explode takes 0.005723
explode takes 0.005812
explode takes 0.005860
explode takes 0.005756
explode takes 0.005835
split takes 0.005158
split takes 0.005170
split takes 0.005440
split takes 0.005402
split takes 0.005272
split takes 0.005434
split takes 0.006389
split takes 0.005414
split takes 0.005510

结论:在split使用正则分割的情况下,两者性能不相上下

2. split与preg_split比较

代码:

for($num=0;$num<9;$num++)
{
    $stime=microtime();
    for($i=0;$i<10000;$i++)
    {
        split('/,/','hello,world');
    }
    $etime=microtime();
    printf("split takes %f \n",$etime-$stime);
}
for($num=0;$num<9;$num++)
{
    $stime=microtime();
    for($i=0;$i<10000;$i++)
    {
        preg_split("/,/","hello,world");
    }
    $etime=microtime();
    printf("preg_split takes %f \n",$etime-$stime);
}
登录后复制


结果:

split takes 0.005381
split takes 0.005568
split takes 0.005107
split takes 0.005097
split takes 0.005444
split takes 0.005538
split takes 0.005095
split takes 0.005112
split takes 0.005087
preg_split takes 0.009364
preg_split takes 0.009568
preg_split takes 0.009037
preg_split takes 0.008957
preg_split takes 0.009021
preg_split takes 0.009656
preg_split takes 0.009038
preg_split takes 0.008962
preg_split takes 0.009412

结论:split性能优于preg_split


数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号