我们可以将Phoenix编译器用作功能更强大的NGEN吗?

时间:2020-03-06 14:25:43  来源:igfitidea点击:

如果我们不了解Phoenix,那显然是Microsoft提供的一个编译器框架,它将成为所有新编译器的基础。它可以从CIL,x86,x64和IA64中读取代码;并以x86,x64,IA64或者CIL发出代码。

我可以使用它将纯.Net应用程序转换为纯本机应用程序吗?我的意思是,它不必加载任何.Net .dll(甚至没有mscoree),并且具有相同的语义?当然,这不包括反射。

解决方案

在不了解Phoenix的情况下,为了使.NET应用程序本地运行,我们还需要框架的本机版本,除非我们不使用框架(这几乎是不可能的)。

另外,CLR包括垃圾回收,程序集加载等,因此,转储CLR的解释部分可能不会对.NET应用程序的性能产生太大影响。

另外,从Phoenix常见问题解答中:

Q. How do I retarget from a native image to an MSIL image (or vice-versa)?
  
  A. Not very easily. This is not a supported scenario, and while it might be theoretically possible, we do not know of anyone who has actually done it.