Sadece bir süre çalışıyorum 1 döngü ve ölçüm önbellek özniteliği.Önbellek, bellek başvurusu olmadan sonsuz bir döngüde özlüyor mu?
int main() {
while(1);
}
Bu özel işlem, bir işlemci (kullanarak taskset) bağlıdır ve bu işlemci başka bir yöntem, aynı işlemci üzerinde zamanlanan, yani izole edilir. Şimdi perf
kullanarak önbellek performansını ölçmeye başladım ve sürprizim son seviye önbellek öznemde% 42.
22,579 cache-references (20.82%)
8,976 **cache-misses # 39.754 %** of all cache refs (20.83%)
4,414 **LLC-load-misses # 42.74%** of all LL-cache hits
şaşırıyorum ve herhangi hafıza operasyonu yapmıyorum ben sıfır önbellek bayan bekleniyor. Bu konuda herhangi bir yardım/düşünce. cpu: Model adı: Intel (R) Xeon (R) CPU E5-2670 v3 @ 2.30GHz
ben% 1'den az düşürüldü 0,1 mili ikinci ve önbellek gereksinimi olması nano uyku vererek mi başka deney. Neler olup bittiğine dair hiçbir fikrim yok.
Anlamsız kodlar, anlamsız sonuçlar. –
Bunu yapmak için nedenlerim var. Önbellek sorunlarını büyük bir parça kodda yalıtmaya çalışıyorum ve sonunda kodumun sıkı bir döngü olduğu ortaya çıkıyor. Şimdi, önbellek özdesinde bir sıçrama olduğunu görüyorum. Bu yüzden, basit bir döngüde denemeye karar verdim ve sonuç beni şaşırttı. – deadbeef
# 1: Derleme çıktısı asm koduna sahip olup bitenleri daha iyi anlayabilirsiniz. # 2 Örneğiniz muhtemelen çok basittir - Sadece önbellek kullanmanız gereken * bir kaç talimatı derleyecektir - şube tahmini her zaman * bilir * herhangi bir belleğe erişme ihtiyacı olmadan ne yapacağınızı *. – tofro