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


Posted in PHP onMay 14, 2017

在网上看了一些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固态

环境1:php 5.6 nts +apache

测试条件: 10000000次循环

结果:    str_replace :3.2446131706238 秒   
               strtr: 36.379708051682 秒 

环境2:php 7.0 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 秒 

意外发现, 5.6版本 str_replace  比 strtr 效率高10+倍,  7.0版本效率基本相同, 但5.6的 str_replace  竟比 7.0高 3倍

ps:以上测试,每个环境都测试了3+次,结果取平均值

以上这篇详谈php中 strtr 和 str_replace 的效率问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 PHP
基于MySQL体系结构的分析
May 02 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
smarty中post用法实例
Nov 28 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
解决php扩展安装不生效问题
Oct 25 PHP
PHP如何解决微信文章图片防盗链
Dec 09 PHP
PHP从数组中删除元素的四种方法实例
May 12 #PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 #PHP
php中时间函数date及常用的时间计算
May 12 #PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 #PHP
PHP 实现浏览记录并按日期分组
May 11 #PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 #PHP
使用WAMP搭建PHP本地开发环境
May 10 #PHP
You might like
杏林同学录(六)
2006/10/09 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
python实现bucket排序算法实例分析
2015/05/04 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
python3中property使用方法详解
2019/04/23 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
python环境下安装opencv库的方法
2020/03/05 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
反对四风问题自我剖析材料
2014/09/29 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
2014年资料员工作总结
2014/11/18 职场文书
英文道歉信
2015/01/20 职场文书
技术负责人岗位职责
2015/02/10 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
九年级化学教学反思
2016/02/22 职场文书
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle