對于大字符串?dāng)?shù)據(jù)流處理的函數(shù)性能差異
$h = fopen("./abc","r");
while($a = fgets($h))
{
}
fclose($h);
的性能是
$h = fopen("./abc","r");
while(!feof($h))
{
$a = fgets($h);
}
fclose($h);
的2倍
如果對大文件進(jìn)行讀行處理蒸健,一定要用fgets不能用file_get_contents+explode內(nèi)存會多消耗50%具练,性能差別1倍
如果對每一行的數(shù)據(jù)進(jìn)行分析處理阅酪,性能如下:
1. 采樣分析法西设,性能最高
2. STRPOS性能一般
3. PREG_MATCH正則棍鳖,性能非常差
以下函數(shù)看似不消耗多少职车,實(shí)際上非常消耗CPU:
1. trim
2. if特別多條件
對于特別大的字符串,如果使用完成了為了節(jié)省內(nèi)存鹊杖,可以強(qiáng)制內(nèi)存回收:
unset($abc)
采樣分析法是目前PHP字符串分析中性能最高的方法
php內(nèi)部支持?jǐn)?shù)據(jù)類型char *
$a = "starts 12333 of\n";
if ($a[0] == 's' && $a[5] == 's') {
}
判斷字符串是否為空的高性能方法
$a = "starts 12333 of\n";
if (!isset($a[0]) {
}