详谈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 相关文章推荐
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
php的4种常见运行方式
Mar 20 PHP
php头像上传预览实例代码
May 02 PHP
PHP 无限级分类
May 04 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP以json或xml格式返回请求数据的方法
May 31 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 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/10/25 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
python中常用检测字符串相关函数汇总
2015/04/15 Python
python套接字流重定向实例汇总
2016/03/03 Python
使用Python生成XML的方法实例
2017/03/21 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
Python numpy 点数组去重的实例
2018/04/18 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
keras之权重初始化方式
2020/05/21 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
C语言笔试题
2014/09/04 面试题
int和Integer有什么区别
2013/05/25 面试题
井冈山红色之旅心得体会
2014/10/07 职场文书
环保主题班会教案
2015/08/13 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS