草庐IT

c# - 如果我们使用 NGen.exe 将其编译为 native 代码,C# 是否需要运行 .NET 框架?

我知道C++代码直接在本地机器上运行。我也知道我们可以使用NGen.exe将c#代码编译成native代码。我的问题是如果我们使用Native代码生成器NGen.exe将c#代码编译成native代码,还需要.NET框架来运行吗? 最佳答案 事实上,如果您将C++代码编译成Windows可执行文件,您仍然需要Win32dll和其他东西。你的程序无法在除了你的程序之外什么都没有的CPU上运行。C#也是如此。如果将C#编译为native代码,则不需要JIT编译器,它是.NET运行时的一部分。但是您仍然需要.NET运行时的所有其他部分。例

c# - 执行 Ngen 后,我在哪里可以找到生成文件的位置?

我在C#可执行文件上做了Ngen。它成功了,但我无法弄清楚生成的文件在我的电脑中的什么位置。MSDN说它应该在native图像缓存中,但仍然无法弄清楚它在哪里..编辑:我想在上面运行objdump,因此我需要物理文件EDIT2:我运行ngen的输出是:C:\DocumentsandSettings\nmea\MyDocuments\VisualStudio2008\Projects\ConsoleApplication4\ConsoleApplication4\bin\Release>ngeninstallConsoleApplication4.exeMicrosoft(R)CLRNa

c# - 你用过ngen.exe吗?

这里有人用过ngen吗?在哪里?为什么?有任何性能改进吗?何时何地使用它有意义? 最佳答案 我不是日常使用它,但它被想要提高性能的工具使用;例如,Paint.NET在安装程序(或可能是首次使用)期间使用NGEN。某些MS工具也有可能(虽然我不确定)。基本上,NGEN会预先为装配执行大部分JIT,因此冷启动时几乎没有延迟。当然,在大多数典型用法中,不会达到100%的代码,因此在某些方面,这会做很多不必要的工作-但它无法提前告知。IMO的缺点是您需要通过GAC才能使用NGEN;我尽量避免使用GAC,这样我就可以使用robocopy-de

c# - TargetedPatchingOptOut : "Performance critical to inline across NGen image boundaries"?

使用反射器检查一些框架类并注意到许多方法和属性具有以下属性[TargetedPatchingOptOut("PerformancecriticaltoinlineacrossNGenimageboundaries")]我很确定我也在其他地方看到过上述评论,但从未跟进过。有人可以告诉我这在C#和任何其他上下文中意味着什么吗? 最佳答案 它告诉NGen可以内联它所应用的方法,即使在不同的程序集中也是如此。例如:String.Equals有[TargetedPatchingOptOut]您编写了一个调用String.Equals的程序你跑
12