详谈php中 strtr 和 str_replace 的效率问题

 更新时间:2017年05月14日 09:32:19   投稿:jingxian  
下面小编就为大家带来一篇详谈php中 strtr 和 str_replace 的效率问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在网上看了一些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输出缓存ob系列函数详解

    PHP输出缓存ob系列函数详解

    ob,输出缓冲区,是output buffering的简称,而不是output cache。ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额外的负担
    2014-03-03
  • PHP 缓存实现代码及详细注释

    PHP 缓存实现代码及详细注释

    PHP缓存实现,实现了apc和文件缓存,继承Cache_Abstract即可实现调用第三方的缓存工具。参考shindig的缓存类和apc。
    2010-05-05
  • php安全配置记录和常见错误梳理(总结)

    php安全配置记录和常见错误梳理(总结)

    下面小编就为大家带来一篇php安全配置记录和常见错误梳理(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • PHP WebSocket的技术解析与使用指南详解

    PHP WebSocket的技术解析与使用指南详解

    在这篇文章中我们将深入讨论从建立连接、绑定到监听等各方面的操作,并提供易于理解和实践的指导,希望可以帮助大家掌握在PHP中使用WebSocket的关键概念和技术
    2024-02-02
  • PHP 存储文本换行实现方法

    PHP 存储文本换行实现方法

    在文本存储时使用\n如果发现没有效果, 这时可以使用\r\n就可以了,希望对有需要的朋友有所帮助。
    2010-01-01
  • PHP Memcached + APC + 文件缓存封装实现代码

    PHP Memcached + APC + 文件缓存封装实现代码

    PHP Memcached + APC + 文件缓存封装实现代码,需要的朋友可以参考下。
    2010-03-03
  • 小文件php+SQLite存储方案

    小文件php+SQLite存储方案

    在互联网快速发展的背景下,网络上的数据内容呈几何级的增长,而其中增长最快并且最容易给信息基础架构带来挑战的就是数目庞大的小文件(如图片、电子图书、邮件等)。
    2010-09-09
  • PHP+MySQL实现消息队列的方法分析

    PHP+MySQL实现消息队列的方法分析

    这篇文章主要介绍了PHP+MySQL实现消息队列的方法,结合实例形式分析了php+mysql构建消息队列并使用定时器间歇发送信息相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • mac系统下为 php 添加 pcntl 扩展

    mac系统下为 php 添加 pcntl 扩展

    pcntl中php实现多进程必须要安装的扩展,本文给大家简单介绍下如何在mac系统中为 php 添加 pcntl 扩展
    2016-08-08
  • php中如何判断一个网页请求是ajax请求还是普通请求

    php中如何判断一个网页请求是ajax请求还是普通请求

    以下是对php中如何判断一个网页请求是ajax请求还是普通请求的实现方法进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08

最新评论