[英]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.