Tôi đang sử dụng callgrind để cấu hình một ứng dụng đa luồng Linux và hầu hết nó hoạt động tốt. Tôi bắt đầu nó với thiết bị đo đạc (--instr-atstart = no) và sau đó sau khi cài đặt xong, tôi bật nó lên với callgrind_control -i trên. Tuy nhiên, khi tôi thay đổi một số cấu hình nhất định để cố gắng cấu hình một phần khác của ứng dụng, nó bắt đầu chạy cực kỳ chậm ngay cả trước khi tôi bật thiết bị. Về cơ bản một phần của mã sẽ mất một vài giây với hoạt động bình thường mất hơn một giờ với callgrind (thiết bị tắt). Bất kỳ ý tưởng nào về lý do tại sao điều đó có thể xảy ra và làm cách nào để gỡ lỗi/giải quyết sự chậm chạp?callgrind chậm với thiết bị đo được tắt
Trả lời
Callgrind là một công cụ, được xây dựng trên valgrind. Valgrind về cơ bản là một trình dịch nhị phân động (libVEX, một phần của valgrind). Nó sẽ giải mã mọi lệnh và JIT biên dịch chúng thành luồng của một số lệnh của cùng một CPU.
Như tôi biết, không có cách nào để kích hoạt bản dịch này (trong thực thi valgrind) cho quá trình đang chạy, vì vậy dịch năng động được kích hoạt mọi lúc, từ khi bắt đầu chương trình. Nó không thể được tắt quá.
Công cụ được xây dựng trên valgrind bằng cách thêm một số mã thiết bị. Công cụ "Nul" (nulgrind) là công cụ không thêm công cụ. Nhưng mọi công cụ sử dụng valgrind và bản dịch động đều hoạt động mọi lúc. Bật và tắt trong callgrind chỉ là bật và tắt thiết bị bổ sung.
CPU ảo, được thực hiện bởi Valgrind bị giới hạn, có (không đầy đủ) danh sách các giới hạn http://valgrind.org/docs/manual/manual-core.html#manual-core.limits Hầu hết các hạn chế về hoạt động điểm động và chúng có thể được mô phỏng sai.
Thay đổi có được kết nối với các hoạt động điểm động không? Hoặc với các giới hạn được liệt kê khác?
Ngoài ra, bạn nên biết rằng "Thực hiện nối tiếp theo thứ tự Valgrind để chỉ một luồng đang chạy tại một thời điểm". (từ cùng một trang manual-core.html)
PS: nulgrind (libVEX thiết bị cơ bản) trên không là rất lớn. Nulgrind ước tính chậm hơn 2-10 lần so với mã gốc (ví dụ: http://os.inf.tu-dresden.de/papers_ps/vee08-pohle.pdf); bất kỳ công cụ nào khác trên vlagrind đều chậm hơn nulgrind. Callgrind với chế độ tắt sẽ chạy ở tốc độ của nulgrind; callgrind được bật sẽ chạy chậm hơn vài lần. – osgx
- 1. Tắt thiết bị
- 2. Sự kiện 'thiết bị đo đạc' javascript - cảm biến nào đo được?
- 3. Pin Intel: Quy trình chạy thiết bị đo đạc
- 4. Bật/tắt thiết bị Android
- 5. callgrind tương đương với java?
- 6. Bật tắt hoạt ảnh chậm trong khi gỡ lỗi bằng thiết bị iOS
- 7. Callgrind inlined functions
- 8. Thiết bị đo mã hóa động - vấn đề
- 9. Chạy thiết bị đo không thành công do 'java.lang.IllegalAccessError'
- 10. PHP với MySQL bị chậm
- 11. Cách tắt nguồn thiết bị Android?
- 12. tắt khối lượng thiết bị - iOS
- 13. Đo chênh lệch thời gian giữa các thiết bị được nối mạng
- 14. Android: Tải danh sách ứng dụng thiết bị - Rất chậm
- 15. Mô phỏng kết nối Internet chậm trên thiết bị REAL?
- 16. Tắt khởi động chậm tcp
- 17. Thông báo địa phương hết hạn khi thiết bị bị tắt bị mất
- 18. Tắt nguồn thiết bị USB trong phần mềm trên Windows
- 19. iOS: Phương pháp thử nghiệm chậm hơn 25 lần trên thiết bị so với mô phỏng
- 20. Tắt di chuyển trên thiết bị di động
- 21. Tắt máy Windows từ thiết bị đầu cuối linux
- 22. Cookie bị tắt với Java URLConnection
- 23. Cách đo khoảng cách giữa hai thiết bị iPhone bằng bluetooth?
- 24. Cách lấy ví dụ về Thiết bị đo đạc trong Java
- 25. Tắt máy Tomcat RẤT chậm sau khi gọi tắt máy.
- 26. Android: Cách cài đặt APK thiết bị đo đạc lên AVD trong Máy chủ không đầu
- 27. Thêm mã vào một lớp Java w/Thiết bị đo đạc: ASM hoặc BCEL?
- 28. Làm cách nào để ngăn hiển thị trên thiết bị iOS bị mờ và tắt?
- 29. Thử nghiệm Android: Chạy thiết bị đo đạc không thành công do 'java.lang.ClassNotFoundException'
- 30. Thư viện OCR để nhận dạng số trên thiết bị đo
"Cấu hình nhất định để cố gắng cấu hình một phần khác của ứng dụng" là gì? – jpalecek
user779, bạn có thể kiểm tra tốc độ ứng dụng bằng công cụ ["nul" của valgrind] (http://valgrind.org/docs/manual/nl-manual.html) và với [công cụ Lackey valgrind] (http: //valgrind.org/docs/manual/lk-manual.html)? – osgx
@jpalecek: tất cả ý tôi là người dùng có thể bật/tắt tính năng bằng cách cấu hình và bằng cách bật một số tính năng (nó sẽ đệ quy để biết thêm chi tiết về tập hợp đối tượng và kết quả tính toán nhiều hơn). . – naumcho