ngen相关内容
经过大量研究,我仍然找不到这个问题的答案. 那么一个 NGEN 的 ASP.NET MVC3 应用程序是否可以部署在 Azure 网站中的 32 位“基本"或“标准"实例中? 谢谢. 解决方案 如果你是 NGEN,事情会爆炸吗?没有. 您会从 NGEN 中受益吗?不会.如果您的构建系统与 Azure 服务器不同(几乎可以肯定),运行时将简单地重新 JIT 服务器上的内容.
..
浏览了一些使用反射器的框架类,注意到一些方法和属性具有以下属性 [TargetedPatchingOptOut("性能对跨 NGen 图像边界内联至关重要")] 我很确定我在其他地方也看到过上述评论,但从未跟进. 谁能告诉我这在 C# 和任何其他上下文中意味着什么? 解决方案 它告诉 NGen 即使在不同的程序集中也可以内联它所应用的方法. 例如: String.Eq
..
我想出于特殊目的使用 ngen 命令行编译 C# 程序.所以我在 VS2010 中创建了一个控制台应用程序并将其命名为 ngentest.在 vs2010\projects\ngentest\bin\debug 中创建名为 ngentest.vshost.exe 的文件.我在VS2010命令提示符中使用了这个文件作为ngen命令参数,如下: ngen "c:\documents\vs2010\p
..
我刚刚浏览了我们的德国 VB.NET 论坛 有一些有趣的事情让我有点头疼. 实际上可以使用 ReflexIL 或其他一些 IL 编辑器编辑 .NET Framework 程序集.您唯一需要绕过的是程序集的强名称签名.更改程序集 IL 后,您必须运行 sn.exe -Vr [assemblyname] 以跳过强名称验证.之后,您必须清除缓存的本机图像.只需通过 C:\Windows\assem
..
如另一个问题所述,如果方法具有
..
我有以下问题: 我的 .NET 程序集是在 x86 模式下编译的.我还能在 x64 Windows 系统上利用 NGEN 的性能优势吗?x86 程序集会在 x64 上编译成本机代码吗? 解决方案 使用 x86 编译的程序集将在 64 位系统上运行 i wow64,但使用 AnyCPU 编译的程序集将在本机运行,与 NGEN 无关.为 x86 编译的程序集可以在 64 位系统上加载 3
..
我刚刚浏览了我们的德国 VB.NET 论坛 有一些有趣的事情让我有点头疼. 实际上可以使用 ReflexIL 或其他一些 IL 编辑器编辑 .NET Framework 程序集.您唯一需要绕过的是程序集的强名称签名.更改程序集 IL 后,您必须运行 sn.exe -Vr [assemblyname] 以跳过强名称验证.之后,您必须清除缓存的本机图像.只需通过 C:\Windows\assem
..
如另一个问题所述,如果方法具有
..
当我安装 .NET 应用程序时,我知道它会被抖动.我的问题是每次我运行这个应用程序时都会发生这种抖动还是只在第一次发生?如果只是第一次发生,我在哪里可以找到这个应用程序的 jitted 版本? 解决方案 根据需要,程序集是零碎的.您的问题似乎暗示整个应用程序是立即编译的.这不是发生的事情.在任何特定时刻被抖动的部分都在内存中. JIT 编译考虑到某些代码可能永远不会在执行过程中被调用
..
我从
..
如何确定特定的.Net程序集是否已经生成?我需要从代码检查.即使调用命令行也可以.目前,我看不到任何确定方法. 解决方案 您可以尝试在"ngen缓存"(C:\ Windows \ assembly \ NativeImages_v2XXXXXXX)中找到程序集. 已执行的程序集将具有以下格式名称: [基本名称]. ni .[基本扩展名] .
..
通过ClickOnce分发的我们的应用平均需要花费 10.8秒才能启动。在.exe(ClickOnce将其安装到的目录中)上运行 ngen 后,它平均启动时间为 6.4秒。显然这是一个巨大的提速( 40%),我想尽可能地利用ngen-ification。 Ron对是否可以将NGen与ClickOnce部署一起使用?显示了如何在客户的计算机上完成此操作,假设我猜他正在运行 Windows XP
..
是否可以将NGen与ClickOnce部署一起使用? 解决方案 实际上您可以使用NGEN和clickone,但是您要使用在clickonce安装完成后需要运行NGEN,因为NGEN是.NET安装的一部分(对于3.5,您应该参考2.0安装)。 此处是一个例子,我认为它足够通用,您无需更改代码或对其进行很少更改即可使用它(除了调用表单): 静态类程序 { ///
..
AFAIK, ngen 将MSIL变成本机代码(也被称为JIT之前),但是我从来没有在启动性能影响方面受到太多的关注。 Ngen'd应用程序仍然需要.NET 基类库(运行时)。 由于基类库具有.NET程序集所需的一切(正确的),可以使用我的ngen'd应用程序来运送框架的DLL,以便它不需要运行时要安装? (例如,大多数Windows XP机器的情况) 哦,请不要麻烦提到 Remote
..
我想在我安装结束执行NGEN只是为了提高我的应用程序的第一次启动的感知性能。我怎么能这样做呢?是否有一些最佳做法?我可以肯定地说NGEN总是与.NET框架安装? 谢谢! 解决方案 您可以使用自定义安装程序操作NGEN程序集。以下链接中进一步详细解释: 的http:/ /www.dotnetperls.com/ngen 的 http://www.bobpowell.net/
..
标题说明了一切。我希望有人能有什么.NET原住民带来了,我们没有已经与Ngen.exe表向我解释。 解决方案 据我所知NGEN仍取决于框架,.NET原生别当它根据FAQ击中生产。 的这只是表演,还是这也让建筑 C#代码(说)这是本机编译到Win32 / 64和没有 需要安装的。 ?在目标机器上.NET框架的 这是正确的:.NET本地不仅仅是性能,而且还约$生产力和一致b $
..
在这里有人用过NGEN?哪里?为什么?是否有任何性能改进?何时何地是否有意义使用它? 解决方案 是的,我看到的性能改进。我的测量表明,它确实提高启动性能,如果我也把我的程序集到GAC,因为我的组件都强命名。如果你的程序集强名称,NGEN不会做出任何区别不使用GAC。 这不是我的应用程序一个很好的选择,因为我们依靠我们的公司共同的组件(同时也是强大的命名)。常见的组件是由使用许多不同的
..
我要编译使用NGEN命令行对特殊目的C#程序。所以,我在创建一个VS2010控制台应用程序,并把它命名为“ngentest”。因此,通过NEME“ngentest.vshost.exe”文件中的“vs2010\projects\\\ gentest\bin\debug”被创建。 我用这个文件在Visual Studio 2010命令提示符下NGEN命令参数,如下所示: “NGEN” C:
..
大量的研究后,我仍然无法找到这个问题的答案。 所以这是部署在Azure的网站,在32位“基本”或者一个NGEN自己的ASP.NET应用程序MVC3“标准”的实例吗? 感谢。 解决方案 会的事情,如果你NGEN炸掉?号 您从NGEN得到好处?否。如果您的构建系统从Azure的服务器不同(这几乎肯定不会),运行时将只需重新JIT的东西在服务器上。
..
是更好地利用NGEN的ASP.NET应用程序时,我们知道这是不会发生大的变化?或者是JIT不够好? 我问的唯一原因是因为这篇文章杰弗里里希特在2002年说: - “当然,微软在改善CLR和JIT编译器,使其运行速度更快的工作相当辛苦,产生更加优化code,并更有效地使用内存。这些改进需要时间。对于开发者不能等,.NET框架可再发行组件包括一个名为NGen.exe实用“。
..