详谈php中 strtr 和 str_replace 的效率问题
在网上看了一些php优化的指南,里面提到:使用strtr函数比str_replace快4倍。本着探索的精神动手验证。
代码
$string='abcdefg'; set_time_limit(300); $start=microtime(true); for($i=0;$i<10000000;$i++){ $str=str_replace('a','123',$string); } echomicrotime(true)-$start,'
'; $start=microtime(true); for($i=0;$i<10000000;$i++){ $str=strtr($string,['a'=>'123']); } echomicrotime(true)-$start,'
';
平台(笔记本):win10+i5+8G固态
环境1:php5.6nts+apache
测试条件:10000000次循环
结果: str_replace:3.2446131706238秒
strtr:36.379708051682秒
环境2:php7.0nts+apache
测试条件:10000000次循环
结果: str_replace:9.3426380157471秒
strtr:9.3660399913788秒
环境3:php5.6nts+nginx
测试条件:10000000次循环
结果: str_replace:3.2784769535065秒
strtr:35.701732158661秒
环境4:php7.0nts+nginx
测试条件:10000000次循环
结果: str_replace:9.5572259426117秒
strtr:9.4987349510193秒
意外发现,5.6版本str_replace 比strtr效率高10+倍, 7.0版本效率基本相同,但5.6的str_replace 竟比7.0高3倍
ps:以上测试,每个环境都测试了3+次,结果取平均值
以上这篇详谈php中strtr和str_replace的效率问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。