详谈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获得文件扩展名三法
Nov 25 PHP
Smarty+QUICKFORM小小演示
Feb 25 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
PHP多维数组排序array详解
Nov 21 PHP
PhpStorm本地断点调试的方法步骤
May 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
mysql5详细安装教程
2007/01/15 PHP
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
python自动点赞功能的实现思路
2020/02/26 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
任命书标准格式
2015/03/02 职场文书
学校体育节班级口号
2015/12/25 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server