.net - 能否将 Phoenix 编译器用作更强大的 NGEN?

标签 .net compiler-construction native ngen

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

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

最佳答案

如果不太了解 Phoenix,为了让 .NET 应用程序在 native 运行,您还需要该框架的 native 版本,除非您不使用该框架(这几乎是不可能的)。

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

另外,来自凤凰城 FAQ :

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.

关于.net - 能否将 Phoenix 编译器用作更强大的 NGEN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/101452/

相关文章:

c++ - 获取第三方Click-Once应用的config文件夹

c# - 如何以编程方式在 C# 中创建 DDL 列表

.net - 哪里可以下载 'MySql.Data, Version=6.2.2.0'?

c++ - 在每个转储中发现更多堆,它们来自哪里?

.net - 无法打开 .NET winforms 应用程序来打开 CHM 文件中的帮助主题

c# - 如何在 roslyn 中使用 Formatter.Format(SyntaxNode,Workspace)?

java - java中单行注释和多行注释有什么区别?

java - 在另一种方法中使用 getter 不起作用?

java - 将java编译成本地代码?

c++ - native C++ SQL 框架