详谈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 相关文章推荐
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
PHP实现多条件查询实例代码
Jul 17 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
php将字符串转换为数组实例讲解
May 05 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 5.0 Pear安装方法
2006/12/06 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
js 调整select 位置的函数
2008/02/21 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
监理员的岗位职责
2013/11/13 职场文书
称象教学反思
2014/02/03 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python