Apa profiler C ++ gratis terbaik untuk Windows? [Tutup]

224

Saya mencari profiler untuk menemukan hambatan dalam kode C ++ saya. Saya ingin mencari alat profiling yang gratis, tidak mengganggu, dan bagus. Saya seorang pengembang game, dan saya menggunakan PIX untuk Xbox 360 dan merasa sangat bagus, tetapi itu tidak gratis. Saya tahu Intel VTune , tetapi juga tidak gratis.

ugasoft
sumber
VTune tampaknya gratis sekarang: software.intel.com/en-us/vtune . Saya mengunduh edisi komunitas dan melakukan pekerjaan yang hebat dalam pembuatan profil C ++ serta kode C # yang dikelola
Dr. ABT
1
Bagaimana ini di luar topik? Alat pengembangan pada topik sejauh yang saya tahu. Ini berdasarkan opini.
Nic Szerman

Jawaban:

135

CodeXL sekarang telah menggantikan AMD Code Analyst End Of Line dan keduanya gratis, tetapi tidak semaju VTune. Ada juga Sleepy , yang sangat sederhana, tetapi melakukan pekerjaan dalam banyak kasus.

yrp
sumber
4
Berikut ini tautan untuk CodeAnalyst: developer.amd.com/CPU/CODEANALYST/Pages/default.aspx
epotter
1
Saya mencoba bekerja dengannya sekarang, dan sama sekali tidak menyukainya. Saya bahkan tidak mengerti bagaimana cara mendapatkan total waktu fungsi% (termasuk callees) yang dapat dilakukan TrueTime dengan baik 10 tahun yang lalu.
Pavel Radzivilovsky
Saya menulis adaptasi ngantuk yang tidak bergantung pada wxWidgets tetapi berjalan di baris perintah. Anda menjalankannya untuk jangka waktu tertentu terhadap proses yang berjalan dan kemudian ketika Anda menghentikannya, Anda mendapatkan statistik dari apa proses menghabiskan waktu melakukan. Ini non-intrustive karena Anda tidak perlu mengubah kode Anda dengan cara apa pun untuk menggunakannya, tetapi itu menangguhkan utas Anda saat membaca tumpukan panggilan. Anda juga membutuhkan file pdb yang tersedia sehingga Anda bisa mendapatkan output yang bermakna, tapi saya kira itu berlaku untuk profiler mana pun.
CashCow
Saya akan merekomendasikan mencoba xperf saya menemukan itu lebih unggul dari analis kode AMD.
MW_dev
1
CodeAnalyst tidak akan menerima pembaruan lagi kecuali untuk perbaikan bug penting. Mereka beralih ke CodeXL. Inilah tautannya sehingga Anda dapat memperbarui jawaban Anda. Dan terima kasih telah memberi tahu saya sekarang tentang CodeAnalyst / XL.
Adri CS
61

Very Sleepy adalah profiler CPU C / C ++ untuk sistem Windows (gratis).
CppCheck adalah profiler CPU C / C ++ statis untuk sistem Windows (gratis).

lsalamon
sumber
20
googletest adalah kerangka kerja unit testing. Bagaimana Anda menggunakannya untuk melakukan profiling?
greatwolf
Jika Anda menggunakan binari Windows dari tumpukan gcc, ini adalah pilihan yang bagus - AMD CodeAnalyst tidak mengenali simbol gcc pada Windows, tetapi sangat mengantuk!
Mike
17

Ada profiler instrumenting (fungsi-akurat) untuk MS VC 7.1 dan lebih tinggi disebut MicroProfiler. Anda bisa mendapatkannya di sini (x64) atau di sini (x86) . Itu tidak memerlukan modifikasi atau penambahan pada kode Anda dan mampu menampilkan statistik fungsi dengan penelepon dan callees secara real-time tanpa perlu menutup aplikasi / menghentikan proses pembuatan profil.

Ini terintegrasi dengan VisualStudio, sehingga Anda dapat dengan mudah mengaktifkan / menonaktifkan profil untuk suatu proyek. Dimungkinkan juga untuk menginstalnya pada mesin yang bersih, hanya perlu informasi simbol ditempatkan bersama dengan executable yang sedang diprofilkan.

Alat ini berguna ketika pendekatan statistik dari sampling profiler seperti Very Sleepy tidak mencukupi.

Perbandingan kasar menunjukkan, bahwa itu mengalahkan AQTime (ketika dipanggil dalam instrumenting, menjalankan fungsi-level). Program berikut (optimasi penuh, inlining dinonaktifkan) berjalan tiga kali lebih cepat dengan profiler mikro menampilkan hasil secara waktu nyata, dibandingkan dengan AQTime hanya mengumpulkan statistik:

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());
}
Arty
sumber
1
Mudah digunakan dan profiler super cepat. Hanya satu masalah yang tidak saya pecahkan adalah masalah yang setelah saya selesai debug, jendela profiler tidak menutup secara otomatis dan Anda harus membunuhnya melalui task manager (tanpa itu Anda tidak dapat mengkompilasi ulang proyek Anda).
Ludek Vodicka
1
Saya menemukan bahwa setelah saya menutup aplikasi saya dengan tombol TUTUP biasa, jendela profiler dapat ditutup secara teratur juga. Tetapi ketika saya keluar dari aplikasi dengan SHIFT + F5 (Berhenti perintah debugging VS), tombol tutup jendela profiler dinonaktifkan.
Ludek Vodicka
Tidak bekerja dengan VS 2015.
rustyx
1
Diperbaiki pada 1.1.590. Lihat pembaruan pada halaman Galeri Visual Studio ( visualstudiogallery.msdn.microsoft.com/... )
Arty
1
Ini sangat bagus! Harus peringkat jauh lebih tinggi! Super sederhana untuk menginstal dan menjalankan, dan memberi Anda sebagian besar dari apa yang perlu Anda ketahui. Pilihan kedua saya adalah Windows Performance Analyzer: geekswithblogs.net/akraus1/archive/2015/04/21/163342.aspx
Steve
10

Microsoft memiliki Windows Performance Toolkit .

Itu memang membutuhkan Windows Vista, Windows Server 2008 , atau Windows 7.

epotter
sumber
6
Bagaimana itu tidak gratis? Ini adalah bagian dari SDK Windows. Saya bisa mengunduhnya tanpa masalah. (Harus diakui, kami memiliki langganan MSDN, sehingga beberapa orang mungkin memiliki pengalaman yang berbeda dari saya.)
epotter
1
Gratis atau tidak, tautan tidak lagi berfungsi dengan baik.
Tomáš Zato - Reinstate Monica
7

Tambahan baru adalah Shiny .

​​​​​

Buggieboy
sumber
3
Tidak dapat menemukan binari yang dapat diunduh, hanya kode sumber. Sangat tidak nyaman.
Monsinyur
5

Saya sangat merekomendasikan Windows Performance Toolkit (WPT) atau XPERF

Alat baris perintah xperf perintah mencatat log Pelacakan Peristiwa untuk Windows (ETW) yang dapat dianalisis menggunakan alat GUI xperfview.

Menggunakan argumen baris perintah stacktrace telah terbukti menjadi alat yang tak ternilai bagi perusahaan saya karena profil dan pemecahan masalah kemacetan. Salah satu hal yang paling menarik adalah bahwa WPT dapat diinstal di lingkungan apa pun bahkan pada Windows XP yang terhormat .

Pada Windows 8, Windows Performance Analyzer membawa xperf ke tingkat yang lebih tinggi.

Angka keras dan statistik yang disediakan dalam log ETW tidak tertandingi secara detail kecuali untuk profiler studio visual (2010/2012) yang juga bagus tetapi tidak AFAIK gratis.

Jika Anda belum pernah menggunakan xperf ... Anda tidak tahu apa yang Anda lewatkan

Coda
sumber
1
Yah saya tahu saya kehilangan URL yang berfungsi ke situs.
Tomáš Zato - Reinstate Monica
3

Saya menggunakan AQTime, ini adalah salah satu alat profil terbaik yang pernah saya gunakan. Ini tidak gratis tetapi Anda bisa mendapatkan uji coba 30 hari, jadi jika Anda berencana untuk mengoptimalkan dan membuat profil hanya satu proyek dan 30 hari sudah cukup untuk Anda maka saya akan merekomendasikan menggunakan aplikasi ini. ( http://www.automatedqa.com/downloads/aqtime/index.asp )

dudico
sumber
Hanya alat ini yang membantu saya menyusun profil dalam aplikasi web mode campuran (terkelola dan asli) pada IIS.
Monsinyur
Sangat disayangkan bahwa mereka tidak mendukung orang yang mencoba mengevaluasi produk mereka.
Lucky Luke
Saat ini mereka menawarkan uji coba 14 hari dengan fungsi terbatas.
Max
2

Silakan coba profiler saya, bernama cRunWatch. Ini hanya dua file, sehingga mudah untuk diintegrasikan dengan proyek Anda, dan perlu menambahkan satu baris tepat untuk instrumen sepotong kode.

http://ravenspoint.wordpress.com/2010/06/16/timing/

Membutuhkan perpustakaan Boost.

ravenspoint
sumber
0

Saya telah menggunakan "TrueTime - bagian dari suite DevPartner Compuware selama bertahun-tahun. Ada [versi gratis] (Anda bisa mencoba Compuware DevPartner Performance Analysis Community Edition.) Tersedia.

Harold Ekstrom
sumber
0

Saya menggunakan VSPerfMon yang merupakan Standalone Visual Studio Profiler. Saya menulis alat GUI untuk membantu saya menjalankannya dan melihat hasilnya.

http://code.google.com/p/vsptree/


sumber
0

Anda dapat menggunakan EmbeddedProfiler, gratis untuk Linux dan Windwos.

Profiler ini mengganggu (berdasarkan fungsi) tetapi tidak memerlukan modifikasi kode apa pun. Cukup tambahkan flag compiler tertentu (-finstrument-functios untuk gcc / MinGW atau / GH untuk MSVC) dan tautkan pustaka profiler. Ini dapat memberi Anda pohon panggilan penuh atau hanya daftar fungsi. Ini memiliki GUI penganalisa sendiri.

Mi-La
sumber