2013-12-10 16 views
10

Tôi đã làm việc trong dự án Big C++, có nguồn kích thước khổng lồ gần 300 MB và hơn 800 tệp. Tôi muốn nhận được cuộc gọi ngăn xếp khi các tai nạn nhị phân, vì vậy tôi đã nắm bắt các tín hiệu và viết ngăn xếp cuộc gọi từ backtrace_symbols vào một tập tin. Nhưng để lấy tên biểu tượng từ backtrace_symbols, tôi đã biên dịch với cờ liên kết '-rdynamic'. Tôi muốn biết rằng, bằng cách sử dụng '-rdynamic' tác động bất kỳ vấn đề ..?Tác động/Nhược điểm của tùy chọn gcc rdynamic

Tôi biết rằng nó ảnh hưởng đến hiệu suất, Will adding the -rdynamic linker option to gcc/g++ impact performance?

Nhưng liệu nó ảnh hưởng đến hiệu suất đáng kể ..?

Google Chrome có hiển thị mã nguồn của tôi không ..? [Tôi biết nó sẽ không, tôi chỉ muốn chắc chắn]

Liệu nó có ảnh hưởng đến tổng thời gian chạy hay thời gian khởi động ..?

Nhược điểm của 'rdynamic' ..?

Trả lời

11

Q: Nhưng nó có ảnh hưởng đến hiệu suất đáng kể không ..?

A: Tôi đã sử dụng nó trên một dự án lớn hơn với bất kỳ sự xuống cấp nào.

Q: Nó có hiển thị Mã nguồn của tôi không ..?

A: Không, nó chỉ hiển thị tên hàm.

Q: Liệu nó có ảnh hưởng đến tổng thời gian chạy hoặc thời gian khởi động ..?

A: Theo kinh nghiệm của tôi, không. Hầu hết các chức năng đã được xuất. Thông thường, điều này sẽ thêm các hàm tĩnh.

Hỏi: Những nhược điểm của 'rdynamic' là gì?

A: rdynamic có thể được sử dụng với dlopen() để có bảng biểu tượng chung/toàn cục cho tệp thực thi là phải trong dự án của tôi (dynamic_cast <> sẽ hoạt động trên các ranh giới SO). Nhược điểm là xung đột tên hàm giữa các SO.

Các vấn đề liên quan