Windows için en iyi ücretsiz C ++ profili nedir? [kapalı]


224

Benim C ++ kodunda darboğaz bulmak için bir profiler arıyorum. Ücretsiz, müdahaleci olmayan ve iyi bir profil oluşturma aracı bulmak istiyorum. Ben bir oyun geliştiriciyim ve Xbox 360 için PIX kullanıyorum ve çok iyi buldum, ancak ücretsiz değil. Intel VTune'yi biliyorum , ama ücretsiz de değil.


VTune şimdi özgür gibi görünüyor: software.intel.com/en-us/vtune . Topluluk sürümünü indirdim ve C ++ profillemenin yanı sıra yönetilen C # kodunu da harika bir iş çıkarıyor
Dr. ABT

1
Bu konu dışı mı? Geliştirme araçları bildiğim kadarıyla konu üzerinde. Yine de fikir tabanlıdır.
Nic Szerman

Yanıtlar:


135

CodeXL , Satır Sonu'nun yerini aldı AMD Kod Analisti ve her ikisi de ücretsiz, ancak VTune kadar gelişmiş değil. Ayrıca çok basit olan Sleepy de var , ancak birçok durumda işi yapıyor.



1
Şimdi onunla çalışmayı denedim ve hiç hoşuma gitmedi. Hatta TrueTime 10 yıl önce yapabileceği fonksiyonun toplam süresi% (callees dahil) nasıl anlayamadım.
Pavel Radzivilovsky

Ben wxWidgets bağlı değil ama komut satırında çalışan uykulu bir adaptasyon yazdı. Çalışan bir sürece karşı bir süre çalıştırırsınız ve sonra durdurduğunuzda, işlemin zamanını ne kadar harcadığının istatistiklerini alırsınız. Kodunuzu kullanmak için herhangi bir şekilde değiştirmeniz gerekmediği için müdahaleci değildir, ancak çağrı yığınlarını okurken iş parçacıklarınızı askıya alır. Ayrıca anlamlı çıktı alabilmek için kullanılabilir pdb dosyalarına ihtiyacınız var, ama sanırım bu herhangi bir profiler için geçerlidir.
CashCow

AMD kod analisti üstün buldum xperf denemenizi tavsiye ederim.
MW_dev

1
CodeAnalyst, kritik hata düzeltmeleri dışında başka güncelleme almayacak. CodeXL'e geçtiler. Yanıtınızı güncelleyebilmeniz için bağlantı İşte . Bu arada CodeAnalyst / XL ile ilgili şimdi izin verdiğin için teşekkürler.
Adri CS

61

Very Sleepy , Windows sistemleri için C / C ++ CPU profil oluşturucusudur (ücretsiz).
CppCheck , Windows sistemleri için statik bir C / C ++ CPU profil oluşturucusudur (ücretsiz).


20
googletest bir birim test çerçevesidir. Profil oluşturma için bunu nasıl kullanırsınız?
greatwolf

Gcc yığınından bir Windows ikili dosyası kullanıyorsanız, bu mükemmel bir seçimdir - AMD CodeAnalyst, Windows'ta gcc sembollerini tanımıyor, ancak çok uykulu!
Mike


17

MS VC 7.1 ve üstü için MicroProfiler adı verilen bir enstrümanlama (fonksiyon hassasiyeti) profili vardır. Buradan (x64) veya buradan (x86) alabilirsiniz . Bu hiçbir değişiklik veya ilave gerektirmez kodunuza ve arayanlar ve callees ile fonksiyon istatistiklerini görüntüleme yapabiliyor gerçek zamanlı / uygulamayı kapatmadan profilleme sürecini durdurmak gerek kalmadan.

VisualStudio ile bütünleşir, böylece bir proje için profili kolayca etkinleştirebilir / devre dışı bırakabilirsiniz. Temiz makineye kurmak da mümkündür, sadece sembol bilgisinin yürütülebilir dosyanın profilli olması gerekir.

Bu araç, Çok Uykulu gibi örnekleme profilleyicilerinden istatistiksel yaklaşım yeterli olmadığında kullanışlıdır.

Kaba karşılaştırma, AQTime'u geçtiğini gösterir (enstrümantasyonda çağrıldığında, işlev düzeyinde çalışma). Aşağıdaki program (tam optimizasyon, satır içi devre dışı), mikro profillerin sonuçları gerçek zamanlı olarak görüntülemesiyle AQTime'ın yalnızca istatistik toplamaya göre üç kat daha hızlı çalışmasını sağlar:

void f()
{
    srand(time(0));

    vector<double> v(300000);

    generate_n(v.begin(), v.size(), &random);
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
}

1
Kullanımı kolay ve süper hızlı profil oluşturucu. Çözmediğim tek bir sorun, hata ayıklamayı bitirdikten sonra profiler penceresinin otomatik olarak kapanmaması ve görev yöneticisi aracılığıyla öldürmek zorunda kalmanızdır (bu olmadan projenizi yeniden derleyemezsiniz).
Ludek Vodicka

1
Uygulamamı normal KAPAT düğmesi ile kapattıktan sonra profiler penceresinin de düzenli olarak kapatılabileceğini buldum. Ancak SHIFT + F5 kısayoluyla (VS komutunda hata ayıklamayı durdur) uygulamadan çıktığımda profiler penceresi kapatma düğmesi devre dışı bırakıldı.
Ludek Vodicka

VS 2015 ile çalışmaz.
rustyx

1
1.1.590 itibariyle düzeltildi. Visual Studio Galeri sayfasındaki güncellemeleri görün ( visualstudiogallery.msdn.microsoft.com/… )
Arty

1
Bu gerçekten, gerçekten iyi! Çok daha yüksek sırada olmalı! Kurulumu ve çalıştırılması süper basittir ve bilmeniz gerekenlerin çoğunu verir. İkinci tercihim Windows Performans Analizörü: geekswithblogs.net/akraus1/archive/2015/04/21/163342.aspx
Steve



5

Ben çok tavsiye Windows Performans Toolkit (WP) veya Xperf

Komut satırı xperf komut satırı aracı, GUI xperfview aracı kullanılarak analiz edilebilen Windows için Olay İzleme (ETW) günlüklerini kaydeder.

Stacktrace komut satırı argümanı kullanmanın , darboğazları profilleştirdiği ve sorunlarını giderdiği için şirketim için paha biçilmez bir araç olduğu kanıtlanmıştır. En ilgi çekici şeylerden biri, WPT'nin saygıdeğer Windows XP'de bile herhangi bir ortama kurulabilmesidir .

On Windows 8 Windows Performans Analyzer daha da yüksek seviyeye XPerf sürer.

ETW günlüklerinde sağlanan sabit sayılar ve istatistikler, aynı zamanda harika ama ücretsiz AFAIK olmayan görsel stüdyo profili (2010/2012) dışında ayrıntılı olarak benzersizdir.

Daha önce hiç xperf kullanmadıysanız ... neyi kaçırdığınızı bilmiyorsunuz


1
Sitenin çalışma URL'sini kaçırdığımı biliyorum.
Tomáš Zato - Monica'yı eski durumuna döndür

3

AQTime kullanıyorum, şimdiye kadar kullandığım en iyi profil oluşturma araçlarından biri. Ücretsiz değil, ancak 30 günlük bir deneme alabilirsiniz, bu yüzden sadece bir projeyi optimize etmeyi ve profil oluşturmayı planlıyorsanız ve 30 gün sizin için yeterliyse, bu uygulamayı kullanmanızı tavsiye ederim. ( http://www.automatedqa.com/downloads/aqtime/index.asp )


Yalnızca bu araç, IIS'deki yayın modu karışık (yönetilen ve yerel) web uygulamasında derlenen profili seçmeme yardımcı oldu.
Monsignor

Ürünlerini değerlendirmeye çalışan insanları desteklememesi talihsiz bir durumdur.
Şanslı Luke

Şu anda sınırlı işlevselliğe sahip 14 günlük bir deneme sunuyorlar.
Max



0

"TrueTime - yıllardır Compuware'in DevPartner paketinin bir parçası kullandım. [Ücretsiz sürüm] var (Compuware DevPartner Performans Analizi Topluluk Sürümü'nü deneyebilirsiniz.).



0

EmbeddedProfiler'i kullanabilirsiniz, hem Linux hem de Windwos için ücretsizdir.

Profil oluşturucu müdahaleci (işlevselliğe göre), ancak herhangi bir kod değişikliği gerektirmez. Sadece belirli bir derleyici bayrağı (gcc / MinGW için -finstrument-functios veya MSVC için / GH) ekleyin ve profil oluşturucunun kütüphanesini bağlayın. Size tam bir çağrı ağacı veya sadece bir funciton listesi sağlayabilir. Kendi analizörü GUI'sine sahiptir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.