Tôi muốn nhận được dấu vết ngăn xếp khi ứng dụng gặp sự cố. Tôi hiểu rằng tùy chọn -rdynamic cho phép nhận dấu vết ngăn xếp hoàn chỉnh với tên hàm. Nhưng tôi lo lắng nếu có bất kỳ tác động nào đến hiệu suất của đơn đăng ký của tôi.Sẽ thêm tùy chọn trình liên kết -rdynamic vào hiệu suất tác động của gcc/g ++?
Trả lời
Có, có, mặc dù nó rất cụ thể và thường không phải là một nguyên nhân quan tâm.
Tùy chọn động lực hướng dẫn trình liên kết thêm các biểu tượng vào các bảng biểu tượng không thường cần thiết trong thời gian chạy. Nó có nghĩa là có nhiều hơn, có thể nhiều hơn nữa, các biểu tượng mà mối liên kết động cần phải thông qua tại thời gian chạy cho độ phân giải biểu tượng.
Cụ thể, vì việc tra cứu bảng biểu tượng trong hệ thống dựa trên GNU được triển khai bằng cách sử dụng băm, có nhiều biểu tượng hơn làm tăng khả năng xảy ra xung đột băm. Vì tất cả các symols va chạm trong bảng băm đều nằm trong danh sách, trình liên kết thời gian chạy cần phải duyệt qua danh sách và so sánh, sử dụng memcmp, mỗi tên biểu tượng. Có nhiều biểu tượng va chạm trong ý nghĩa băm có danh sách dài hơn và do đó sẽ mất nhiều thời gian hơn để giải quyết từng ký hiệu động.
Tình trạng này hơi tồi tệ hơn đối với C++ rồi C, với vô số tên biểu tượng có tiền tố giống nhau do tên lớp. Trong thực tế, điều này chỉ ảnh hưởng lần đầu tiên mà một biểu tượng được sử dụng và như vậy, trừ khi ứng dụng của bạn là rất lớn và chứa rất nhiều biểu tượng, nó sẽ không được cảm nhận.
Trong trường hợp hiếm hoi mà ứng dụng của bạn lớn, các thủ thuật như prelinking có thể được sử dụng để khắc phục phí.
- 1. biểu tượng gỡ lỗi gcc (cờ -g) so với tùy chọn -rdynamic của liên kết
- 2. Hiệu suất tác động của DefaultTraceListener
- 3. tác động hiệu suất của jvmti khi trình gỡ lỗi không được kết nối?
- 4. PostgreSQL: hiệu suất tác động của các cột phụ
- 5. Hiệu suất liên kết jQuery
- 6. Log.d và tác động đến hiệu suất
- 7. Kích thước lớn Permgen + hiệu suất tác động
- 8. Việc thêm [Serializable] vào lớp có bất kỳ tác động hiệu suất nào không?
- 9. ACL trên hiệu suất tác động của Linux
- 10. Tác động hiệu suất của thừa kế ảo
- 11. Làm giảm hiệu suất tác động của Node.js?
- 12. Hiệu suất của trình liên kết liên quan đến không gian hoán đổi?
- 13. Tác động hiệu suất của bộ chọn phổ quát là gì?
- 14. tác động hiệu suất của kết hợp "nóng" và "nội tuyến" cho định nghĩa hàm
- 15. Hiệu suất thấp của liên kết gia tăng
- 16. Chỉnh sửa hộp thoại liên kết CKEditor để thêm thuộc tính tùy chỉnh vào liên kết
- 17. Cách cung cấp tùy chọn trình liên kết khi liên kết thư viện tĩnh với qmake?
- 18. F # tương tác và hiệu suất profilers
- 19. Tăng Tùy chọn Chương trình Thêm Tùy chọn Cú pháp
- 20. MPI và D: Tùy chọn liên kết
- 21. RavenDB chọn hiệu suất kém
- 22. Đã thêm bóng vào UIImageView trên UITableView sẽ giết hiệu suất ... tại sao?
- 23. CKEditor sẽ thêm một gốc vào liên kết hình ảnh của tôi
- 24. Trạng thái hiện tại của tùy chọn hiệu suất Oracle Java HotSpot VM (+ UseStringCache, + UseCompressedStrings, + OptimizeStringConcat)
- 25. Thêm liên kết vào mục tự động hoàn thành JQueryUI
- 26. Tự động thêm siêu liên kết vào RichTextBox
- 27. Trình liên kết Clang không nhìn vào LD_LIBRARY_PATH
- 28. Thêm đối số tùy chọn vào macro
- 29. Hiệu suất của OracleBulkCopy
- 30. Tác động hiệu suất của việc sử dụng mẫu kiểu lớp trong Scala