详谈php中 strtr 和 str_replace 的效率问题

网络编程 2021-07-05 08:23www.168986.cn编程入门
狼蚁网站SEO优化长沙网络推广就为大家带来一篇详谈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);
}
 
echo microtime(true)-$start, '<br />';
 
$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
  $str = strtr($string, ['a'=>'123']);
}
 
echo microtime(true)-$start, '<br />';

平台(笔记本)win10 + i5 + 8G固态

环境1php 5.6 nts +apache

测试条件 10000000次循环

结果    str_replace 3.2446131706238 秒   
               strtr 36.379708051682 秒 

环境2php 7.0 nts +apache

测试条件 10000000次循环

结果    str_replace 9.3426380157471秒   
               strtr 9.3660399913788秒 

环境3php 5.6 nts + nginx

测试条件 10000000次循环

结果    str_replace 3.2784769535065 秒   
               strtr 35.701732158661 秒 

环境4php 7.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 的效率问题就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by