能否将 Phoenix 编译器用作更强大的 NGEN?
如果您不知道 Phoenix,它是 Microsoft 的一个编译器框架,显然将成为其所有新编译器的基础。 它可以读取 CIL、x86、x64 和 IA64 的代码; 并以 x86、x64、IA64 或 CIL 发出代码。
我可以用它来将纯 .Net 应用程序转换为纯本机应用程序吗? 我的意思是,它不必加载任何 .Net .dll(甚至不必加载 mscoree),并且具有相同的语义? 当然,这不包括反射。
In case you don't know of Phoenix, it's a compiler framework from Microsoft that's apparantly going to be the foundation of all their new compilers. It can read in code from CIL, x86, x64, and IA64; and emit code in x86, x64, IA64, or CIL.
Can I use it to transform a pure .Net app into a pure native app? By which I mean, it will not have to load any .Net .dll (not even mscoree), and will have the same semantics? This is excluding Reflection, of course.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果对 Phoenix 不太了解,为了让 .NET 应用程序在本机运行,您还需要该框架的本机版本,除非您不使用该框架(这几乎是不可能的)。
此外,CLR 还包括垃圾收集、程序集加载等,因此转储 CLR 的解释部分可能不会对 .NET 应用程序的性能产生太大影响。
另外,来自凤凰城常见问题解答:
Without knowing too much about Phoenix, in order to have a .NET app run natively you're going to also need a native version of the framework, unless you don't use the framework (which is pretty much impossible).
Also the CLR includes garbage collection, assembly loading, etc, so dumping the interpreting part of the CLR probably won't make that much difference to the performance of .NET apps.
Also, from the Phoenix FAQ: