环境: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常用函数性能对比相关推荐

  1. python中math计算平方根的函数_Python中Numpy和Math常用函数性能对比

    numpy是如今数据分析领域离不开的Python第三方工具库,它和Python自带的math库中都有一些基础的数学函数,比如指数.对数.三角函数等.在需要使用这些函数的时候,到底该用numpy还是ma ...

  2. TDengine与InfluxDB性能对比

    文章目录 0 测试环境 1 测试数据集及其生成方法 1.1 测试数据生成方法 1.2 测试数据生成程序源码 1.3 测试数据生成程序用法 1.4.生成测试数据 2 TDengine环境准备 2.1.安 ...

  3. [转]SQLServer和Oracle,存储过程区别,常用函数对比

    本文转自:http://www.cnblogs.com/neru/archive/2011/08/18/2144049.html 以前一直用sqlserver,只有很少的一点oracle的经验,现在要 ...

  4. Java常用消息队列原理介绍及性能对比

    消息队列使用场景 为什么会需要消息队列(MQ)? 解耦  在项目启动之初来预测将来项目会碰到什么需求,是极其困难的.消息系统在处理过程中间插入了一个隐含的.基于数据的接口层,两边的处理过程都要实现这一 ...

  5. Java集合篇:Map常用遍历方式 以及 性能对比

    一.Map集合常用的遍历方式: 遍历Map集合的常用方式有三种:使用keySet的方式,使用entrySet的方式,使用values()取值的方式,这三种方式中,都有对应的for循环遍历和Iterat ...

  6. sqlserver oracle对比,sqlserver和oracle常用函数对比

    sqlserver和oracle常用函数对比 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S: ...

  7. chr sqlserver_SQLServer常用函数对比

    SQLServer 和 Oracle 的常用函数对比 1. 绝 对值 S:select abs(-1) value O:select abs(-1) value from dual 2. 取 整 ( ...

  8. SQL Server 和 Oracle 的常用函数对比

    SQL Server 和 Oracle 的常用函数对比 ---------数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1)  value from ...

  9. oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]

    oracle.sqlserver.mysql常用函数对比[to_char.to_number.to_date] oracle   -->    mysql to_char(sysdate,'yy ...

  10. Pytorch优化器全总结(四)常用优化器性能对比 含代码

    目录 写在前面 一.优化器介绍 1.SGD+Momentum 2.Adagrad 3.Adadelta 4.RMSprop 5.Adam 6.Adamax 7.AdaW 8.L-BFGS 二.优化器对 ...

最新文章

  1. 90.前端 :执行方法前提示功能
  2. 2014年12月日本語能力試験N3聴解部分
  3. 创立一家互联网公司,需要几步?
  4. c语言图像浏览器,单片机采用浏览器进行监控将给软件的编程带来极大的便利...
  5. boost::convert模块实现默认转换器的测试程序
  6. 非常有趣的古越及吴语-台州话
  7. MVC3"不允许启动新事务,因为有其他线程正在该会话中运行"错误解决方法
  8. java简单纸牌游戏_活动回顾 | 畅玩法语纸牌游戏
  9. 十步让你成为更优秀的程序员
  10. Windows 编程[6] - 学习窗体生成的过程六: 最终的代码!
  11. Android 7.0图片裁剪问题
  12. 结对编程之经验教训总结
  13. Redis五大数据结构的类型的使用
  14. 推荐 | 掌握这12条经验,对理解机器学习至关重要!(可下载PDF)
  15. 宝可梦世界无限极服务器怎么进去,宝可梦世界无极限
  16. 爬虫写得好,牢饭吃得早
  17. 检查手机端还是非手机端,做m站和pc站的适配
  18. Mac Word 修改默认的模板
  19. 程序员PHP工具箱下载地址及配置教程
  20. 苹果无线显示与电视连接电脑连接电脑连接服务器,投屏黑科技!手把手教您,如何将笔记本电脑的画面无线投屏到电视或投影机上显示...

热门文章

  1. 手机网站制作html5,【怎么样制作手机网站】如何使用dreamweavercs6建立手机网站?织梦手机WAP浏览模块如何制作手机网站?如何制作html5手机页面?...
  2. 安卓微信打开的文档存放在哪里
  3. 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
  4. 解决win7安装梦幻桌面后不能使用,成灰色的问题
  5. PPT 动画模板使用技巧
  6. 外贸必备——各国常用搜索引擎
  7. 手机斗鱼服务器无响应,win7看斗鱼直播很卡怎么办|win7斗鱼未响应的解决方法
  8. 全面理解网络流中的最大流问题
  9. slickedit使用簡介
  10. 离散数学知识点及错题集合 第七章