详谈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 相关文章推荐
攻克CakePHP系列一 连接MySQL数据库
Oct 22 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
有关php运算符的知识大全
Nov 03 PHP
php生成圆角图片的方法
Apr 07 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
php简单备份与还原MySql的方法
May 09 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
php数据库备份还原类分享
2014/03/20 PHP
php返回json数据函数实例
2014/10/09 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python中处理时间的几种方法小结
2015/04/09 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python 整数越界问题详解
2019/06/27 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
python生成器用法实例详解
2019/11/22 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
称象教学反思
2014/02/03 职场文书
生产车间标语
2014/06/11 职场文书
节约粮食标语
2014/06/18 职场文书
2014年度党员自我评议
2014/09/13 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python