随着每周期CPU指令(IPC)增加约10%,CPU吞吐量也随之提高。
# perf stat -a -e cache-misses,cache-references -- sleep 10 Performance counter stats for 'system wide': 268,195,790 cache-misses # 12.240 % of all cache refs [100.00%] 2,191,115,722 cache-references 10.019172636 seconds time elapsed禁用GC时,高速缓存未命中率有2~3%的下降,主要原因是IPC增加10%所致。CPU高速缓存未命中的代价太高了,因为它使CPU管道停滞。对CPU缓存命中率的微小改进通常可以显著提高IPC。使用较少的CoW,具有不同虚拟地址(在不同的工作进程中)的更多CPU高速缓存线指向相同的物理存储器地址,导致更好的高速缓存命中率。
我们可以看到,并非每个组件都按预期工作,有时,结果可能会非常令人惊讶。所以继续挖掘、四处观望,你会惊讶事情究竟是如何运作的!