Tôi hiểu hành vi của const
loại dữ liệu đủ điều kiện. Mặc dù vậy, tôi tò mò, nếu có bất kỳ sự tăng hoặc giảm hiệu suất nào từ sự quá mức hoặc quá nhiệt tình của các biến số đủ điều kiện là const
. Tôi đang suy nghĩ đặc biệt của các biến khai báo và sử dụng độc quyền trong một khối mã bị cô lập. Ví dụ, một cái gì đó như:Việc khai báo các biến C++ có giúp ích hoặc làm tổn thương hiệu suất không?
const qreal padding = CalculatePadding();
const QSizeF page_size = CalculatePagePreviewSize(padding);
const QRectF content_rect = CalculatePagePreviewContentRect(page_size);
const QList<QRectF> pages = renderer.BuildPrintPages(printer_, map_scene_);
const QFont page_number_font = CalculatePageNumberFont();
const QFontMetrics metrics(page_number_font);
Giả sử tôi chỉ cần const
phương pháp -qualified trên tất cả các Có đạt được hiệu suất thực hiện kê khai tất cả chúng const
(và nhiều hơn nữa.)? Hoặc, ngược lại, điều này có thực sự làm tổn thương hiệu suất không?
Tôi tò mò về cả hiệu suất thời gian chạy (Tôi đoán điều này không có sự khác biệt vì const
là độc quyền kiểm tra thời gian biên dịch - có thể ai đó xác nhận?) và hiệu suất biên dịch. Tôi không có đủ kinh nghiệm với C++ để có một cảm giác cho điều này, và tôi tự hỏi nếu tôi nên sai về phía trên hoặc dưới áp dụng const
khi tất cả những thứ khác (bảo trì, vv) là bình đẳng.
trong hầu hết các trường hợp, không có chênh lệch hiệu suất thời gian chạy – Anycorn
dupe? http://stackoverflow.com/questions/3435026/can-const-correctness-improve-performance – Anycorn
Qt là nhiều bản sao trên ghi vì vậy tôi nghi ngờ const có thể có một hiệu ứng thực sự ở đây. –