her çalıştırmada için talimat farklı sayıda verir aynı elf üzerinde analiz 'perf' her sırasında talimatlar değişikliklerinperf istatistik</p> <pre><code>#include <stdio.h> int main() { } </code></pre> <p>ile birlikte (derleme ve dediğim şu çıktıyı var ./a.out perf, stat çalıştırdıktan sonra, aşağıdaki boş programında analiz perf koştu
418,869 instructions # 0.87 insns per cycle
sayısı: döngülerinin sayısı, görev saat vb) gibi diğer verileri.
Asıl gereksinim, yazdığım belirli bir işlevdeki yönergelerin sayısını bulmaktır. Bu yüzden, yukarıdaki sayıyı yeni programdaki komutların sayısından çıkaracağım. (Programın satır sayısı, gcc'de -S etiketi kullanılarak oluşturuldu, ancak mükemmel davranışa baktıktan sonra kafam karışmış olabilir)
Neden talimat sayısı tutarlı değil, aynı değil mi?
Güncelleme Ben başlayıp işlevin girişinde perf_event_open() sayma olayları durdurmak için önermek için işlevi tarafından çalıştırılan komutların sayısını ölçmek için C
içinde()
perf_event_open() bana .s dosyasındaki yönergelerin sayısına eşit bir sayı verdi. mükemmel stat -e yönergeleri: u a.out her seferinde farklı sayım sayısı verir ancak varyasyon, soruda açıklanan senaryodaki kadar büyük değildir. Perf_event_open kullanarak – Vignesh
tam olarak neyi ölçtüğünüzü biliyorsunuz. Ekledikten sonra bile kalan (küçük) varyasyon için: u, programınızdaki ana işlev çağrılmadan önce kullanıcı alanında hala birçok şeyin yapıldığını tahmin ediyorum ve burada belki de bazı değişiklikler var. –