gpt4 book ai didi

optimization - C++CLI 是否优化?

转载 作者:行者123 更新时间:2023-12-03 17:09:10 26 4
gpt4 key购买 nike

如果我用 C++CLI/托管 C++ 编写程序,编译器会执行任何优化吗?

我知道对于 C#,有一些优化是在编译时完成的,大部分优化是由 JIT 完成的。 C++CLI 也是这样吗?

一个类似的问题:我可以为 C++CLI 做一个 -O2 标志的等价物吗?我已经知道“-c Release”标志,但我不清楚它做了什么样的优化。

谢谢!

最佳答案

C++/CLI 代码始终在发布版本中进行优化,是的。关键靠谁,你敢怎么混就怎么混。如果将过多的 native C++ 代码编译为 MSIL,这往往会出错。很难注意到,代码生成器可以处理任何兼容的 C++03 代码,并且很少对任何 C++1x 咒语发出尖叫声。

一个很好的提醒,抖动与 C++ 编译器的后端没有太大区别。 MSIL 与 LLVM 所需的 IR 相比效果非常好。 MSVC++ 编译器用于 native 代码的 IR 未记录且不可见。

这使得将包装在其自己的静态库或 DLL 中的 native C++ 隔离成为一种很好的做法。但是在函数级别混合是可能的,您可以使用#pragma un/managed 来回切换。

所以这很像您的猜测,#pragma unmanaged code 得到了优化器的完全喜爱,而#pragma managed 在运行时通过抖动得到了优化。您会在 this post 中找到抖动优化记录。 .

关于optimization - C++CLI 是否优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55175115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com