PHP字符串处理,性能优化

2016-11-01  本文已影响0人  朝阳无风

对于大字符串数据流处理的函数性能差异

$h = fopen("./abc","r");

while($a = fgets($h))

{

}

fclose($h);

的性能是

$h = fopen("./abc","r");

while(!feof($h))

{

$a = fgets($h);

}

fclose($h);

的2倍

如果对大文件进行读行处理,一定要用fgets不能用file_get_contents+explode内存会多消耗50%,性能差别1倍

如果对每一行的数据进行分析处理,性能如下:

1. 采样分析法,性能最高

2. STRPOS性能一般

3. PREG_MATCH正则,性能非常差

以下函数看似不消耗多少,实际上非常消耗CPU:

1. trim

2. if特别多条件

对于特别大的字符串,如果使用完成了为了节省内存,可以强制内存回收:

unset($abc)

采样分析法是目前PHP字符串分析中性能最高的方法

php内部支持数据类型char *

$a = "starts 12333 of\n";

if ($a[0] == 's' && $a[5] == 's') {

}

判断字符串是否为空的高性能方法

$a = "starts 12333 of\n";

if (!isset($a[0]) {

}

上一篇下一篇

猜你喜欢

热点阅读