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);
- }
结果:
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
explode,split,preg_split性能比较的更多相关文章
- split(),preg_split()与explode()函数分析与介
split(),preg_split()与explode()函数分析与介 发布时间:2013-06-01 18:32:45 来源:尔玉毕业设计 评论:0 点击:965 split()函数可以实 ...
- Deprecated: Function split() is deprecated in ... 解决办法
本地测试的程序上传到服务器出现很多错误,Deprecated: Function split() is deprecated 查了原因是因为PHP的版本不同所导致的,本身程序开发的时候用的是PHP5 ...
- PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法
PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法 PHP5.3 split() 不建议使用的原因:PHP 5.3.0 之后的r ...
- php Function split() is deprecated 的解决办法
原文地址: http://www.cnblogs.com/mfryf/archive/2012/05/31/2527307.html php升级为5.3后,程序会报 Function split() ...
- 转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则
转义字符 将后边字符转义,使特殊功能字符作为普通字符处理,或者普通字符转化为特殊功能字符. 各个语言中都用应用,如java.python.sql.hive.shell等等. 如sql中 "\ ...
- Hive表生成函数explode讲解
Hive中的表分析函数接受零个或多个输入,然后产生多列或多行输出. 1.explode函数 explode函数以array类型数据输入,然后对数组中的数据进行迭代,返回多行结果,一行一个数组元素值 A ...
- hive lateral view 与 explode详解
ref:https://blog.csdn.net/bitcarmanlee/article/details/51926530 1.explode hive wiki对于expolde的解释如下: e ...
- hive splict, explode, lateral view, concat_ws
hive> create table arrays (x array<string>) > row format delimited fields terminated by ...
- PHP之string之explode()函数使用
explode (PHP 4, PHP 5, PHP 7) explode - Split a string by string explode - 使用一个字符串分割另一个字符串 Descripti ...
随机推荐
- 在xaf 14 中实现 Tonyyang原文中的action权限
具体实现过程,主要修改了以下几个地方: 第一:角色和用户类中需要修改成SecurityStrategy的方式: 具体代码 MySecurityRole: using System; using Sys ...
- NGUI 使用EventDelegate.Add与UIInput.onSubmit、UIInput.onChange限定编辑框中的内容
Unity中,使用NGUI,通常为某个控件(如按钮)绑定事件(单击.双击.拖拽.滚轮.选择等)都是用UIEventListener,比如: public void Bind() { UIEventLi ...
- WCF通过SVCUtil.exe生成客户端代理类和配置文件(转)
WCF服务调用通过两种常用的方式: 1:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式. 2:一种是通过ChannelFactory直接创建服务代理对象进行服务调用. 本文只针对通 ...
- Spark RDD aggregateByKey
aggregateByKey 这个RDD有点繁琐,整理一下使用示例,供参考 直接上代码 import org.apache.spark.rdd.RDD import org.apache.spark. ...
- 帮助对@Repository注解的理解
定义(来自Martin Fowler的<企业应用架构模式>): Mediates between the domain and data mapping layers using a co ...
- tinymce整合struts2使用
在提交之前记得 instance.post(); 这个应付老师检查还是可以的,但是很详细的怎么具体使用,还是要去看官方文档. <%@ page language="java" ...
- 使用Axis2 插件 报错"An error occurred while completing process -java.lang.reflect.InvocationTargetException"
参考 http://blog.csdn.net/sunitjy/article/details/6793654
- VS2013开发 windows服务 挂到服务器上执行
这是百度经验的链接,本人主要参考的他.http://jingyan.baidu.com/article/cd4c2979e9330d756f6e6070.html 1 创建windows服务项目 2 ...
- EF for Firebird
今天用了Firebird,记录下怎么用,不然下次给忘记了 1.官网下载包 1.DDEXProvider-3.0.1.0.msi 2.FirebirdSql.Data.FirebirdClient-4. ...
- wget下载工具
转自于:http://www.jb51.net/LINUXjishu/86326.html 1.使用wget下载单个文件 e.g. wget http://cn.wordpress.org/word ...