分类: php2012-07-12 09:46 1109人阅读 评论(1) 收藏 举报

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

1. explode与split比较

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

代码:

  1. for($num=0;$num<9;$num++)
  2. {
  3. $stime=microtime();
  4. for($i=0;$i<10000;$i++)
  5. {
  6. explode(',','hello,world');
  7. }
  8. $etime=microtime();
  9. printf("explode takes %f \n",$etime-$stime);
  10. }
  11. for($num=0;$num<9;$num++)
  12. {
  13. $stime=microtime();
  14. for($i=0;$i<10000;$i++)
  15. {
  16. split(',','hello,world');
  17. }
  18. $etime=microtime();
  19. printf("split takes %f \n",$etime-$stime);
  20. }

结果:

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用正则进行分割:

代码:

  1. for($num=0;$num<9;$num++)
  2. {
  3. $stime=microtime();
  4. for($i=0;$i<10000;$i++)
  5. {
  6. explode(',','hello,world');
  7. }
  8. $etime=microtime();
  9. printf("explode takes %f \n",$etime-$stime);
  10. }
  11. for($num=0;$num<9;$num++)
  12. {
  13. $stime=microtime();
  14. for($i=0;$i<10000;$i++)
  15. {
  16. split('/,/','hello,world');
  17. }
  18. $etime=microtime();
  19. printf("split takes %f \n",$etime-$stime);
  20. }

结果:

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比较

代码:

  1. for($num=0;$num<9;$num++)
  2. {
  3. $stime=microtime();
  4. for($i=0;$i<10000;$i++)
  5. {
  6. split('/,/','hello,world');
  7. }
  8. $etime=microtime();
  9. printf("split takes %f \n",$etime-$stime);
  10. }
  11. for($num=0;$num<9;$num++)
  12. {
  13. $stime=microtime();
  14. for($i=0;$i<10000;$i++)
  15. {
  16. preg_split("/,/","hello,world");
  17. }
  18. $etime=microtime();
  19. printf("preg_split takes %f \n",$etime-$stime);
  20. }

结果:

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

explode,split,preg_split性能比较的更多相关文章

  1. split(),preg_split()与explode()函数分析与介

    split(),preg_split()与explode()函数分析与介 发布时间:2013-06-01 18:32:45   来源:尔玉毕业设计   评论:0 点击:965 split()函数可以实 ...

  2. Deprecated: Function split() is deprecated in ... 解决办法

    本地测试的程序上传到服务器出现很多错误,Deprecated: Function split() is deprecated  查了原因是因为PHP的版本不同所导致的,本身程序开发的时候用的是PHP5 ...

  3. PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法

    PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法 PHP5.3 split() 不建议使用的原因:PHP 5.3.0 之后的r ...

  4. php Function split() is deprecated 的解决办法

    原文地址: http://www.cnblogs.com/mfryf/archive/2012/05/31/2527307.html php升级为5.3后,程序会报 Function split() ...

  5. 转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则

    转义字符 将后边字符转义,使特殊功能字符作为普通字符处理,或者普通字符转化为特殊功能字符. 各个语言中都用应用,如java.python.sql.hive.shell等等. 如sql中 "\ ...

  6. Hive表生成函数explode讲解

    Hive中的表分析函数接受零个或多个输入,然后产生多列或多行输出. 1.explode函数 explode函数以array类型数据输入,然后对数组中的数据进行迭代,返回多行结果,一行一个数组元素值 A ...

  7. hive lateral view 与 explode详解

    ref:https://blog.csdn.net/bitcarmanlee/article/details/51926530 1.explode hive wiki对于expolde的解释如下: e ...

  8. hive splict, explode, lateral view, concat_ws

    hive> create table arrays (x array<string>) > row format delimited fields terminated by ...

  9. PHP之string之explode()函数使用

    explode (PHP 4, PHP 5, PHP 7) explode - Split a string by string explode - 使用一个字符串分割另一个字符串 Descripti ...

随机推荐

  1. tomcat 配置ssi

    tomcat想要使用html文件引入html文件的功能可以开启ssi,这样就可以在html文件中使用include指令,从而使得html文件可以动态加载html文件了. 开启ssi步骤如下: 1.ap ...

  2. javascript:history.go()和History.back()的区别

    http://www.mikebai.com/Article/2009-11/757.html

  3. SVN和CVS的区别

    对版本控制就有了一定的理解,同时也应该知道SVN与CVS是比较流行的两款SCM工具.那么到底这两款工具有什么区别呢? 1.版本编号方面 例如,我们的版本库为A,其中有文件a,b,c. 在SVN中,新版 ...

  4. centos查看系统cpu个数、核心书、线程数

    1.查看物理cpu个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2.查看核心数量 grep 'core id' /proc/cpuinfo ...

  5. 记录一次自己对nginx+fastcgi(fpm)+mysql压力测试结果

    nginx + fastcgi(fpm) 压力测试: CentOS release 5.9 16核12G内存 静态页面: 并发1000,压测200秒,测试结果: 系统最大负载5.47 成功响应: 25 ...

  6. Windows cmd命令搜索顺序

    一.在cmd中执行一个不带后缀的命令(不带路径),首先会在无后缀的系统命令(如cd.dir等)中搜索,如果找到了就执行该命令, (dir是无后缀的系统命令所以优先执行,无视当前目录中的dir.exe) ...

  7. Servlet过滤器(详询请加qq:2085920154)

    1.1  过滤器简介 过滤器是向Web应用程序的请求和响应处理添加功能的Web服务组件.在Servlet处理用户输入的请求之前,过滤器可以访问该请求.在将Web响应发送给用户之前,过滤器还可以访问该响 ...

  8. (转)__cdecl __fastcall与 __stdcall

    原帖 http://blog.sina.com.cn/s/blog_6b7c56870100l8rf.html __cdecl   __fastcall与   __stdcall 调用约定:  __c ...

  9. linux下配置nginx使用service nginx start 服务

    解压出来后执行 mkdir /var/tmp/nginx/client/ -pv 接下来我们简单的为它提供一个服务脚本吧! # vim  /etc/init.d/nginx 新建文件/etc/rc.d ...

  10. jfinal框架页面找不到相关css,js文件404

    在JFinalConfig中添加配置: @Override public void configHandler(Handlers handlers) { handlers.add(new Contex ...