详谈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 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
php通过字符串调用函数示例
Mar 02 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
php计算整个目录大小的方法
Jun 19 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
php实现中文转数字
Feb 18 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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 数组的一个悲剧?
2011/05/11 PHP
php连接数据库代码应用分析
2011/05/29 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
学习python (1)
2006/10/31 Python
python获取本机外网ip的方法
2015/04/15 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
python实现图片批量压缩程序
2018/07/23 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
python实现图片九宫格分割
2021/03/07 Python
编辑个人求职信范文
2013/09/21 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
《假如》教学反思
2014/04/17 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
参赛口号
2014/06/16 职场文书
文艺委员竞选稿
2015/11/19 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android
使用HttpSessionListener监听器实战
2022/03/17 Java/Android