C#优化器是否执行复制省略?

时间:2015-10-27 18:15:05

标签: c# optimization unity3d mono il2cpp

我希望优化一些C#代码,如果我的优化器要执行任何copy elision,我很好奇,如果是的话,我会感到好奇。我还没有通过谷歌搜索找到任何相关信息。如果不是,我可能想要通过引用切换我的方法来获取struct参数。我关心的环境是Unity 3D,它很奇怪,因为它使用的是Mono 2.0 Runtime或Unity的IL2CPP transpiler(我应该直接问他们关于它的闭源。但是,了解微软的优化器也很有意思,如果标准通常允许这种类型的优化。

旁注:如果优化器不支持,那么如果我能得到相当于C ++ const ref but it appears this doesn't exist的话,那将是非常好的。

1 个答案:

答案 0 :(得分:1)

我可以代表IL2CPP,并说它没有做任何事情来通过引用获取struct参数。即使不访问IL2CPP源代码,您也可以通过检查生成的C ++代码来看到这一点。

请注意,C#结构由C ++结构表示,并且C ++结构由值传递。我们已经讨论了在这种情况下使用const引用的可能性,但是我们还没有实现(我们可能也没有)。