详谈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 冒泡排序算法的实现代码
Aug 08 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
php连接数据库代码应用分析
May 29 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 PHP
ThinkPHP安装和设置
Jul 27 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
phpstudy隐藏index.php的方法
Sep 21 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
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
三种php连接access数据库方法
2013/11/11 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
基于js文件加载优化(详解)
2018/01/03 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python实现的rsa加密算法详解
2018/01/24 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
详解Python 最短匹配模式
2020/07/29 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
淘宝客服自我总结鉴定
2014/01/25 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
委托公证书格式
2015/01/26 职场文书
600字作文之感受大自然
2019/11/27 职场文书
python数字图像处理:图像的绘制
2022/06/28 Python