簡體   English   中英

將參數作為值傳遞為const引用的性能

[英]Performance of passing argument as value vs as const reference

是否在mondern編譯器上通過const值或const引用傳遞小對象是否重要? 例如,我有兩種方法可以接受而不修改boost :: units :: quantity <boost :: units :: si :: length,float> ,這些方法無論如何都要進行浮動優化。

通常,我會將參數的類型聲明為const引用,但如果這樣做,恐怕編譯器無法優化模板方式。

編輯:我沒有想到,但在評論中被rahul.deshmukhpatil提及,如果我接受const& ,則在從多線程環境中調用的情況下,編譯器必須至少發出雙倍代碼。

如果是POD,我希望按值傳遞它會導致整體性能稍快。 “略”是指“只有在某些特定,特定的工作領域中,只有人們對健康的重視程度低於每納秒的性能,才會有人關心”。

要了解原因,有必要了解在傳統硬件上如何進行函數調用以及傳遞參數。

除POD之外,唯一的答案就是嘗試其中一種方法,並收集一些統計信息。

而且,如果您真的不在乎幾納秒的差值,請執行對您而言更方便的事情。

而且,無論哪種情況,模板都是不相關的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM