一次 read 到底发生了什么:从 PHP 的 fread 到内核页缓存
file_get_contents($path) 一行就能读完一个文件。它太快、太顺手,以至于几乎没人问过:这一行到底经过了几层,慢的时候又慢在哪一层。答案比想象的直白:同一次读取,快慢能差出三个数量级。同样是读 64 MB,热缓存 5.8 GB/s,冷读 758 MB/s,直连设备 945 MB/s;同样是调 fread(),读 8 KB 一次和读 1 字节一次,差 320 倍。这篇把一次 re
file_get_contents($path) 一行就能读完一个文件。它太快、太顺手,以至于几乎没人问过:这一行到底经过了几层,慢的时候又慢在哪一层。答案比想象的直白:同一次读取,快慢能差出三个数量级。同样是读 64 MB,热缓存 5.8 GB/s,冷读 758 MB/s,直连设备 945 MB/s;同样是调 fread(),读 8 KB 一次和读 1 字节一次,差 320 倍。这篇把一次 re