2012-04-09 20 views
15

Używam Eclipse CDT pod Linuksem, czy ktoś może polecić dobrego profilera w tym środowisku.Linux Eclipse profilera CDT

Jestem również nowy w C++ i programowania wielowątkowego, może ktoś również oferować porady na temat jak uruchomić profilowanie dla wielowątkowych aplikacji prosimy, np czego szukać gardłem wydajności, itp

Dzięki .

Odpowiedz

12

Nie wiem, czy to najlepszy wybór, ale zdecydowanie jedno: gprof. Musisz tylko ustawić przełączniki kompilacji w prawo (włącz gprof (-pg) dla tego projektu we właściwościach projektu -> c/C++ build -> Ustawienia -> Debugowanie). Po skompilowaniu programu z tymi opcjami, musisz go uruchomić (do normalnych wyjść). Generuje to plik profilu (gmon.out). Istnieje dodatkowa wtyczka, którą można zainstalować w środowisku Eclipse, która wizualizuje zawartość gmon.out (przejdź do Pomoc -> Zainstaluj -> Narzędzia Linux -> Integracja GProf). Po prostu otwórz wygenerowany plik gmon.out jak każdy inny plik, gdy już zainstalujesz tę wtyczkę.

+3

http://wiki.eclipse.org/Linux_Tools_Project/GProf/User_Guide –

+1

Jedną rzeczą, aby pamiętać o gprof (być może innych narzędzi, jak również), że jeśli cię zamknąć aplikację za pomocą Ctrl- C (jak zwykle zamyka serwer, który pisze), plik gmon.out nie zostanie zapisany. – kroiz

+0

Oto http://stackoverflow.com/questions/1030829/gprof-reports-no-time-akumulowane powiązane pytanie. Ktoś zauważył, że jeśli jedna z zależnych bibliotek, takich jak stdC++, jest kompilowana bez -pg, wówczas nie można zebrać informacji o taktowaniu. Czy to prawda? – Sergei

3

Jak wspomniano w dbrank0, należy ustawić opcję kompilacji (-pg) dla tego projektu. Przejdź do właściwości projektu -> c/C++ build -> Ustawienia -> kompilator C++ -> Debugowanie i sprawdzenie generowanie informacji gpof. Podczas kompilacji programu (test_prof.c) otrzymasz plik exe (w naszym przypadku test_prof).

$ ls 
test_gprof test_gprof.c 

Po uruchomieniu tego pliku zostanie wygenerowany plik gmon.out w tym samym katalogu.

$ ls 
gmon.out test_gprof test_gprof.c 

gprof prowadzony jest narzędzie o nazwie pliku wykonywalnego i powyżej generowanego „gmon.out” jako argument. W ten sposób powstaje plik analizy, który zawiera wszystkie pożądane informacje profilowania.

$ gprof test_gprof gmon.out > analysis.txt 

Zostanie wygenerowany plik o nazwie "analysis.txt", który zawiera wszystkie informacje dotyczące profilowania i może być łatwo odczytany. Więcej szczegółów spojrzeć na http://www.thegeekstuff.com/2012/08/gprof-tutorial/

+0

Witam Umair, Oto http://stackoverflow.com/questions/1030829/gprof-reports-no-time-akumulowane powiązane pytanie. Ktoś zauważył, że jeśli jedna z zależnych bibliotek, takich jak stdC++, jest kompilowana bez -pg, wówczas nie można zebrać informacji o taktowaniu. Czy możesz to potwierdzić lub odrzucić? – Sergei

Powiązane problemy