对于大字符串数据流处理的函数性能差异
$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]) {
}