2010-05-03 18 views
7

Programınızın gprof ile nasıl oluşturulacağını öğrenmek için gprof belgelerini anlamıyorum. G ++ 'da, -pg seçeneğine ek olarak -g seçeneği (hata ayıklama bilgileri) ile derlenip gerekli değildir. Her durumda farklı sonuçlar elde ediyorum ve benim uygulamadaki darboğazların sürüm modunda olduğunu, hata ayıklama modunda değil, birçok optimizasyonun derleyici tarafından bırakıldığı (örn. Satır içi)gprof için g ++ içinde derleme

+0

http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343 –

+1

'-g', optimizasyonların kapalı olduğu anlamına gelmez. -O, opdasyonu kontrol eder. Örneğin, hem -g' hem de -O2' ile derleyebilirsiniz. –

cevap

5

documentation gösterir line by line profiling için -g'ye ihtiyacınız olduğunu da belirtebilirsiniz. Bu nedenle, yayın şartlarında profil yapmak istiyorsanız ve hat-line yapmamanızı kabul ederseniz, -g olmadan derlemeniz gerekir.

+0

Sadece fonksiyon çağrılarıyla ilgileniyorum, hat profili ile değil. -g seçeneği olmadan, çağrılan birçok işlev görünmez. Bunun satır içi kullanımdan kaynaklandığını düşünmüyorum, çünkü bu yöntemlerin çoğu büyük kodlar (50+ satır kod). – myahya

+1

@myahya, Bence çok iyi olabilir. Varsayılan olarak GCC, 400 dahili GCC yönergesine kadar uzun işlevler içerebilir (bunların doğrudan kod satırlarını eşlemediğini biliyorum); bkz http://bazaar.launchpad.net/~vcs-imports/gcc/trunk/annotate/99780/gcc/params.def#L58. Ayrıca hangi derleme bayraklarını kullanıyorsunuz? –