0
我正在尋找優化一些C#代碼,我很好奇,如果我的優化器將執行任何copy elision,如果是這樣的話。我一直無法通過Google搜索找到任何有關此信息。如果不是,我可能想切換我的方法通過引用採用結構參數。我所關心的環境是Unity 3D,這很奇怪,因爲它使用Mono 2.0 Runtime或Unity的IL2CPP transpiler(我應該直接詢問它們,因爲它是封閉源代碼)。但是,將Microsoft的優化器知道爲好吧,如果標準一般允許這種類型的優化。注意:如果這不被優化器支持,如果我可以得到與C++ const ref等價的but it appears this doesn't exist,那將是非常好的。C#優化器是否執行copy elision?
如果您使用IL2CPP,輸出目錄將根據平臺而有所不同。例如,在iOS上,您可以在Class/Native目錄中的輸出Xcode項目中找到生成的代碼。看看這個博客文章瞭解更多詳情:http://blogs.unity3d.com/2015/05/13/il2cpp-internals-a-tour-of-generated-code/ –
謝謝!實際上,在這種情況下,可能會出現複製elision,因爲現代C++優化器如果確定即使不通過const ref傳遞它也不會產生副作用,則可以執行此操作。它可能會或可能不會發生取決於優化級別和您使用的優化器/標準(並且C++ 11允許[進一步優化](http://en.cppreference.com/w/cpp/language/copy_elision)通過使用在某些情況下移動構造函數而不是複製構造函數)。但通常這對於性能來說是個好消息!我不知道我可以檢查中級C++ ...我在哪裏可以找到它? – Eliot