【速度优化-php程序执行效率问题】教程文章相关的互联网学习教程文章

解析strtr函数的效率问题_PHP

最近经常要对字符串进行匹配和替换操作,之前一般使用str_replace或者preg_replace,据说strtr的效率不错,所以对比了一下: 代码如下:$i = 0;$t = microtime(true);for(;$i{ $str = strtr(md5($i), $p2);}var_dump(microtime(true)-$t); //0.085476875305176$t = microtime(true);for(;$i{ $str = preg_replace($p, '', md5($i));}var_dump(microtime(true)-$t); //0.09863805770874结果显示,strtr的效率比preg_repla...

PHP的array_diff()函数在处理大数组时的效率问题_php技巧

cisa 提交到 PHP 官方 BUG 页面上的方法 代码如下:/** * 解决 php 5.2.6 以上版本 array_diff() 函数在处理 * 大数组时的需要花费超长时间的问题 * * 整理:http://www.CodeBit.cn * 来源:http://bugs.php.com/47643 */ function array_diff_fast($data1, $data2) { $data1 = array_flip($data1); $data2 = array_flip($data2); foreach($data2 as $hash => $key) { if (isset($data1[$hash])) unset($data1[$hash]); } return a...

php地址引用(php地址引用的效率问题)_php技巧

代码如下:echo 'begin time:'.$begin=microtime(false).'';//begin to count time $array=array(); for ($i=1;$i$array[$i]=$i; } /* $arr=$array;//拷贝 拷贝并打印总时间0.02 foreach ($arr as $ar) { echo $ar.''; } */ /* $newarr=&$array;//地址引用 时间总是控制在0.01之内 地址引用的优势体现出来了 foreach ($newarr as $r) { echo $r.''; } */ foreach ($array as $a) {//基本是0.02 很少是0.01 为什么没有地址引用的快呢...

解析strtr函数的效率问题_php技巧

最近经常要对字符串进行匹配和替换操作,之前一般使用str_replace或者preg_replace,据说strtr的效率不错,所以对比了一下: 代码如下:$i = 0;$t = microtime(true);for(;$i{ $str = strtr(md5($i), $p2);}var_dump(microtime(true)-$t); //0.085476875305176$t = microtime(true);for(;$i{ $str = preg_replace($p, '', md5($i));}var_dump(microtime(true)-$t); //0.09863805770874结果显示,strtr的效率比preg_repla...

2个自定义的PHPin_array函数,解决大量数据判断in_array的效率问题_php实例

但是如果数组比较大的时候,性能就会下降,运行的就会久一点,那如果针对在大数组情况下做优化呢,下面说两种方法(都是通过自定义函数来实现): 1.数组key与value翻转,通过isset判断key是否存在于数组中 代码如下:/** * in_array is too slow when array is large */public static function inArray($item, $array) { $flipArray = array_flip($array); return isset($flipArray[$item]);}大家可能也会问为什么不用 array_k...

PHP的array_diff()函数在处理大数组时的效率问题

cisa 提交到 PHP 官方 BUG 页面上的方法 代码如下:<?php /** * 解决 php 5.2.6 以上版本 array_diff() 函数在处理 * 大数组时的需要花费超长时间的问题 * * 整理:http://www.CodeBit.cn * 来源:http://bugs.php.com/47643 */ function array_diff_fast($data1, $data2) { $data1 = array_flip($data1); $data2 = array_flip($data2); foreach($data2 as $hash => $key) { if (isset($data1[$hash])) unset($data1[$hash]); } re...

php地址引用(php地址引用的效率问题)

代码如下:<?php echo begin time:.$begin=microtime(false).<br/>;//begin to count time $array=array(); for ($i=1;$i<=10000;$i++) {//产生一个很大的数组 $array[$i]=$i; } /* $arr=$array;//拷贝 拷贝并打印总时间0.02 foreach ($arr as $ar) { echo $ar.<br/>; } */ /* $newarr=&$array;//地址引用 时间总是控制在0.01之内 地址引用的优势体现出来了 foreach ($newarr as $r) { echo $r.<br/>; } */ foreach ($array as $a) ...

解析strtr函数的效率问题

最近经常要对字符串进行匹配和替换操作,之前一般使用str_replace或者preg_replace,据说strtr的效率不错,所以对比了一下: 代码如下:$i = 0;$t = microtime(true);for(;$i<1000;$i++){ $str = strtr(md5($i), $p2);}var_dump(microtime(true)-$t); //0.085476875305176$t = microtime(true);for(;$i<2000;$i++){ $str = preg_replace($p, '', md5($i));}var_dump(microtime(true)-$t); //0.09863805770874结果显示,s...

详谈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)-$sta...

2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题

但是如果数组比较大的时候,性能就会下降,运行的就会久一点,那如果针对在大数组情况下做优化呢,下面说两种方法(都是通过自定义函数来实现): 1.数组key与value翻转,通过isset判断key是否存在于数组中 代码如下:/** * in_array is too slow when array is large */public static function inArray($item, $array) { $flipArray = array_flip($array); return isset($flipArray[$item]);}大家可能也会问为什么不用 array_k...

php将一个字符串转变成键值对数组的效率问题【代码】

有这样一种需求,将形式为“TranAbbr=IPER|AcqSsn=000000073601|MercDtTm=20090615144037”的字符串转换成如下格式的数组: Array ([TranAbbr] => IPER[AcqSsn] => 000000073601[MercDtTm] => 20090615144037 )1.第一种方式/* 将一个字符串转变成键值对数组* @param : string str 要处理的字符串 $str =TranAbbr=IPER|AcqSsn=000000073601|MercDtTm=20090615144037;* @param : string sp 键值对分隔符* @param : string k...