Tôi cần phải cấu hình một số mã chạy C++ trên Linux. Các bạn có thể giới thiệu một số profilers không?Trình biên dịch dễ sử dụng cho C++ trên Linux là gì?
Trả lời
valgrind là một cũng-biết linux profiler
nghĩ valgrind là nhiều hơn cho rò rỉ bộ nhớ kiểm tra .. Tôi đang cố gắng để xem những chức năng được gọi là vv – shergill
sử dụng công cụ bộ gọi là "callgrind" – dfa
Valgrind chỉ đơn giản là một khuôn khổ để xây dựng các công cụ năng động. Mặc dù, nó trở thành đồng nghĩa với Memcheck, một công cụ được xây dựng trên Valgrind.Callgrind là một khá tốt tại profiler. – Falaina
Tôi là một fan hâm mộ của Oprofile. Nó liên quan đến việc cài đặt một mô-đun hạt nhân và có một chút của một đường cong học tập với nó, nhưng nó khá mạnh mẽ và hoạt động rất tốt cho các chương trình/chương trình được tối ưu hóa mà không cần các biểu tượng gỡ lỗi.
Vtune là một trình tạo hồ sơ rất mạnh khác do Intel tạo ra. Tôi tin rằng phiên bản Linux là miễn phí cho phần mềm phi thương mại.
Ngoài ra còn có bộ công cụ Valgrind do dfa đề xuất. Callgrind có lẽ sẽ là thứ bạn quan tâm nhất. Cachegrind (có tính năng là một tập hợp con của Callgrind) và Massif cũng thú vị, nhưng tôi không có kinh nghiệm với cái sau.
+1 cho trang web linh hoạt, đó không phải là "công cụ dễ dàng" – dfa
Haha, đúng. Tôi có lẽ không nên làm cho âm thanh đó dễ dàng như vậy :) Nó chắc chắn không đơn giản như "chạy chương trình dưới nó" như Vtune và Valgrind công cụ, nhưng tôi cảm thấy bạn đã quen với nó khá nhanh chóng. – Falaina
oprofile trông thú vị - nó có hỗ trợ x86_64 không? – LiraNuna
gprof là công cụ gnu tiêu chuẩn cho lược tả.
Google cũng có một hồ sơ tốt đẹp như là một phần của google-perftools - được bao gồm trong Debian/Ubuntu và có thể các bản phân phối khác.
Hãy xem KCacheGrind là giao diện đồ họa cho valgrind và làm cho nó thực sự dễ sử dụng.
Sử dụng gprof.
Chỉ biên dịch với cờ -pg
(Tôi nghĩ (nhưng không chắc chắn) bạn phải bật tối ưu hóa.) Và sử dụng gprof để phân tích tệp gmon.out mà tệp thực thi của bạn sẽ sản xuất.
ví dụ:
gcc -pg -o whatever whatever.c
./whatever
gprof whatever gmon.out
Cùng một điều với g ++ và cpp.
Tạo mã không được tối ưu hóa là một chút vô nghĩa, phải không? Tương tự như vậy, mã profiling đã được sửa đổi nhiều với -pg thường misguides bạn vào tối ưu hóa các điểm sai. – federal
zoom từ RotateRight (http://www.rotateright.com) là những gì tôi đã sử dụng. Nó có một cái nhìn bướm của các chức năng và bạn có thể nhấp đúp vào bất kỳ chức năng nào để đi sâu vào mã nguồn hoặc mã asm. Xây dựng với thông tin gỡ lỗi (-g) để xem nguồn của bạn, nhưng bạn vẫn nên tạo và cấu hình tối ưu hóa mã.
Chỉ cần cho chương trình này một shot, nó thực sự khá tốt đẹp! Hiện nay hồ sơ yêu thích của tôi trên Linux; tuy nhiên điều đáng nói là nó yêu cầu mã phải được xây dựng bằng '-fno-omit-frame-pointer' để có hiệu quả. –
Liên kết có vẻ đã chết. Có ai biết nơi (hoặc nếu) nó có thể được tìm thấy ở nơi khác? –
Hãy xem Sysprof. Bạn phân phối rất có thể nó đã có sẵn rồi.
Lưu ý rằng tất cả các profilers được đề cập đều hoạt động tốt nhất nếu ứng dụng của bạn được biên dịch với các con trỏ khung. Tức là, bạn nên sử dụng -fno-omit-frame-pointer trên dòng lệnh gcc.
- 1. Trình biên dịch C++ rất dễ (VC++) là gì?
- 2. Trình biên dịch/trình biên dịch/trình biên dịch C++
- 3. Trình biên dịch Ada cho Linux
- 4. Trình biên dịch chéo Delphi cho linux
- 5. Có trình biên dịch là dịch vụ cho C++ không?
- 6. Trình biên dịch C dành cho Windows?
- 7. Biên dịch C# + WPF trên Linux để chạy trên Windows
- 8. Cờ trình biên dịch Visual Studio C++: là gì -Zm200?
- 9. Trình biên dịch mẫu javascript là gì?
- 10. Cách dễ nhất để xây dựng trình biên dịch F # chạy trên JVM và tạo ra bytecode Java là gì?
- 11. #pragma init và #pragma fini sử dụng trình biên dịch gcc trên linux
- 12. Biên dịch chéo trên Windows và Linux
- 13. Lỗi biên dịch bằng bfd.h trên Linux
- 14. biên dịch lỗi bằng cách sử dụng signal.h trong Linux
- 15. biên dịch trên windows và linux
- 16. Trình biên dịch hoặc trình biên dịch Scheme tốt nhất là gì?
- 17. Trình biên dịch biên dịch trong C#
- 18. Không có trình biên dịch C trên EC2?
- 19. Trình biên dịch Haskell nhỏ, tốt cho Linux?
- 20. Trình biên dịch C++ tốt cho GCC
- 21. Trình biên dịch ML chuẩn hoặc trình biên dịch bytecode, với vòng lặp đọc-eval-in, cho Linux?
- 22. Trình biên dịch C và C++ với ngữ nghĩa dễ bay hơi "tích cực"
- 23. Các khối Objective-C có được hỗ trợ bởi các trình biên dịch trên Linux không?
- 24. Buộc CMake sử dụng trình biên dịch C++ cho tệp C với Visual Studio
- 25. Lỗi trình biên dịch delphi E2134 có nghĩa là gì?
- 26. Biên dịch chéo MinGW trên linux
- 27. Trình biên dịch C/C++ có tối ưu hóa trên các đơn vị biên dịch không?
- 28. Trình biên dịch C++ chuẩn, tốt nhất (và hy vọng) là gì?
- 29. Dễ sử dụng các tùy chọn AutoHotkey/AutoIT cho Linux
- 30. Trình biên dịch c tốt nhất cho Pic18 vi
Bạn nên thêm thẻ Linux và C++. Bạn có thể sẽ nhận được phản hồi tốt hơn và nhiều ý kiến. – Duck
Trông giống như một bản sao của http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux. –
ví dụ: likwid, LLTng, oprofile, valgrind, vtune, gprof, perf, gperftools, pTop – Shan