在PHPstrtr和str_replace效率进行详细的讨论

看一些PHP网络优化的指导方针,但提到更快的使用strtr功能是4倍str_replace.in探索精神的实践验证的手。

代码


$字符串'abcdefg;
(300)set_time_limit;

美元开始=瞬时(真);
($ i = 0;$ i < 10000000;$ + +){
$str = str_replace('a','123 ',为字符串);
}

回波瞬时(真正的)美元的开始,;

美元开始=瞬时(真);
($ i = 0;$ i < 10000000;$ + +){
$str = strtr($字符串{'a' = > '123});
}

回波瞬时(真正的)美元的开始,;


平台(笔记本):Windows10 + i5 RAM+8G固体

环境1:PHP 5.6 NTS + Apache

测试条件:10000000个周期

结果:str_replace:3.2446131706238秒

Strtr:36.379708051682秒



环境2:PHP 7 NTS + Apache

测试条件:10000000个周期



结果:str_replace:9.3426380157471秒

Strtr:9.3660399913788秒



3环境:PHP 5.6 NTS + Nginx

测试条件:10000000个周期



结果:str_replace:3.2784769535065秒

Strtr:35.701732158661秒



4环境:PHP 7.0nts + Nginx

测试条件:10000000个周期



结果:str_replace:9.5572259426117秒

Strtr:9.4987349510193秒



发现str_replace 5.6版本比strtr效率高10倍以上,与7版基本相同,但5.6 str_replace比7高3倍。



ps:上面的测试,每个环境已经测试了3次以上,结果是平均的。

以上是在PHP strtr和str_replace效率详细的帐户,这是所有萧边分享你的内容。我希望能给你一个参考,希望你能得到很多支持。