PHP常用函数性能对比
环境:PHP7.2.13
数据来源:https://phpbench.com
单位:μs 微秒
意义:了解常用函数性能对比,包括foreach、ifelse、echo、print、isset、empty、is_array…,可以在编码中注意使用性能较高的写法。
/*
循环规则
以下为包含100个元素的数组进行测测试,
其中key从一千万开始,value是1万个字符串。
*/
<?
global $aHash;
$i = 0;
$tmp = '';
while($i < 10000) {$tmp .= 'a';++$i;
}
$aHash = array_fill(10000000, 100, $tmp);
1.循环之 - 循环读
这是性能较高的,其他性能较低的有while和for写法,这里就不列出来了。
【消耗时间:2-3μs】 foreach($aHash as $k => $v);
【消耗时间:4-7μs】 foreach($aHash as $v);
【消耗时间:8-15μs foreach($aHash as $k => $v); $tmp[] = $aHash[$key];
【消耗时间:5-7μs】 array_keys($aHash); array_values($aHash);
2.循环之 - 循环修改
【消耗时间:160-450μs】 foreach($aHash as $k => $v) $aHash[$k] .= 'a';
【消耗时间:9-15μs】:
$key = array_keys($aHash);
$size = sizeOf($key);
for ($i=0; $i<$size; $i++) $aHash[$key[$i]] .= "a";
【消耗时间:20-40μs】while(list($key) = each($aHash)) $aHash[$key] .= "a";
3.循环之 - 计数循环
【消耗时间:4000+μs】for($i = 0; $i < 1000000; ++$i);
4.使用单引号还是双引号
PHP7已经做了优化,单引号双引号性能表现几乎一致。
5.isset()、empty()、is_array()哪个性能高
性能表现在PHP7基本一致。
6.控制结构
【消耗时间:10-20μs】 if else ===
例:
$a = 1;
if ($a === 1) {echo 'true';
} elseif($a === 2) {echo 'false';
}
【消耗时间:60-80μs】 if else ==
【消耗时间:60-80μs】 switch case
7.字符串输出
【消耗时间:170-220μs】 echo $a,$a,$a,$a;
【消耗时间:30-60μs】 print $a.$a.$a.$a;
以上两种方式差距较大,其他表现基本一致。
PHP常用函数性能对比相关推荐
- python中math计算平方根的函数_Python中Numpy和Math常用函数性能对比
numpy是如今数据分析领域离不开的Python第三方工具库,它和Python自带的math库中都有一些基础的数学函数,比如指数.对数.三角函数等.在需要使用这些函数的时候,到底该用numpy还是ma ...
- TDengine与InfluxDB性能对比
文章目录 0 测试环境 1 测试数据集及其生成方法 1.1 测试数据生成方法 1.2 测试数据生成程序源码 1.3 测试数据生成程序用法 1.4.生成测试数据 2 TDengine环境准备 2.1.安 ...
- [转]SQLServer和Oracle,存储过程区别,常用函数对比
本文转自:http://www.cnblogs.com/neru/archive/2011/08/18/2144049.html 以前一直用sqlserver,只有很少的一点oracle的经验,现在要 ...
- Java常用消息队列原理介绍及性能对比
消息队列使用场景 为什么会需要消息队列(MQ)? 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的.消息系统在处理过程中间插入了一个隐含的.基于数据的接口层,两边的处理过程都要实现这一 ...
- Java集合篇:Map常用遍历方式 以及 性能对比
一.Map集合常用的遍历方式: 遍历Map集合的常用方式有三种:使用keySet的方式,使用entrySet的方式,使用values()取值的方式,这三种方式中,都有对应的for循环遍历和Iterat ...
- sqlserver oracle对比,sqlserver和oracle常用函数对比
sqlserver和oracle常用函数对比 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S: ...
- chr sqlserver_SQLServer常用函数对比
SQLServer 和 Oracle 的常用函数对比 1. 绝 对值 S:select abs(-1) value O:select abs(-1) value from dual 2. 取 整 ( ...
- SQL Server 和 Oracle 的常用函数对比
SQL Server 和 Oracle 的常用函数对比 ---------数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from ...
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
oracle.sqlserver.mysql常用函数对比[to_char.to_number.to_date] oracle --> mysql to_char(sysdate,'yy ...
- Pytorch优化器全总结(四)常用优化器性能对比 含代码
目录 写在前面 一.优化器介绍 1.SGD+Momentum 2.Adagrad 3.Adadelta 4.RMSprop 5.Adam 6.Adamax 7.AdaW 8.L-BFGS 二.优化器对 ...
最新文章
- 90.前端 :执行方法前提示功能
- 2014年12月日本語能力試験N3聴解部分
- 创立一家互联网公司,需要几步?
- c语言图像浏览器,单片机采用浏览器进行监控将给软件的编程带来极大的便利...
- boost::convert模块实现默认转换器的测试程序
- 非常有趣的古越及吴语-台州话
- MVC3"不允许启动新事务,因为有其他线程正在该会话中运行"错误解决方法
- java简单纸牌游戏_活动回顾 | 畅玩法语纸牌游戏
- 十步让你成为更优秀的程序员
- Windows 编程[6] - 学习窗体生成的过程六: 最终的代码!
- Android 7.0图片裁剪问题
- 结对编程之经验教训总结
- Redis五大数据结构的类型的使用
- 推荐 | 掌握这12条经验,对理解机器学习至关重要!(可下载PDF)
- 宝可梦世界无限极服务器怎么进去,宝可梦世界无极限
- 爬虫写得好,牢饭吃得早
- 检查手机端还是非手机端,做m站和pc站的适配
- Mac Word 修改默认的模板
- 程序员PHP工具箱下载地址及配置教程
- 苹果无线显示与电视连接电脑连接电脑连接服务器,投屏黑科技!手把手教您,如何将笔记本电脑的画面无线投屏到电视或投影机上显示...
热门文章
- 手机网站制作html5,【怎么样制作手机网站】如何使用dreamweavercs6建立手机网站?织梦手机WAP浏览模块如何制作手机网站?如何制作html5手机页面?...
- 安卓微信打开的文档存放在哪里
- 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
- 解决win7安装梦幻桌面后不能使用,成灰色的问题
- PPT 动画模板使用技巧
- 外贸必备——各国常用搜索引擎
- 手机斗鱼服务器无响应,win7看斗鱼直播很卡怎么办|win7斗鱼未响应的解决方法
- 全面理解网络流中的最大流问题
- slickedit使用簡介
- 离散数学知识点及错题集合 第七章