为什么 NGEN 应该挂起并且永远不会完成特定程序集的任何原因?

2024-01-16

我有一个使用 Visual Studio 2008 构建的 .NET 3.5 类库项目。

如果我尝试 NGEN 此解决方案文件中的核心程序集,NGEN 永远不会完成,或者至少在我费心让它运行的时间内(比如过夜)不会完成。

还有其他人经历过吗?如果是这样,你解决了吗?如果你这样做了,又是怎样做的呢?您采取了哪些步骤?

如果这是 NGEN 中的错误,我如何将其发布给 Microsoft?我有一个连接帐户,但我应该在哪里发布此特定产品的错误报告,而不是 .NET 类(我知道该去哪里获取)。

有问题的类库可以在这里找到:

  • http://svn.vkarlsen.no:81/svn/LVK/LVK_3_5/trunk http://svn.vkarlsen.no:81/svn/LVK/LVK_3_5/trunk(颠覆1.6存储库)

有问题的程序集是 LVK.Core 程序集。

Update:.NET 4.0 的 NGEN 已完成,但花了近 15 分钟才完成:

time /t
12:44:39
ngen install lvk.core.dll
Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.
Installing assembly C:\Dev\VS.NET\LVK\LVK.Core\bin\x86\Debug\lvk.core.dll
    Compiling assembly C:\Dev\VS.NET\LVK\LVK.Core\bin\x86\Debug\lvk.core.dll (CLR v2.0.50727) ...
LVK.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=8dbb1dd9b1276c0a <debug>
time /t
12:59:24

更新#2:创建问题于微软连接 https://connect.microsoft.com/VisualStudio/feedback/details/551381/ngen-never-completes-for-a-particular-assembly.


后来发现原因是我的实现Tuple<...>通用类。

事实证明,通过 NGEN 调用 JIT 进程时,将为每个进程创建 NGEN 版本。Tuple<...>类型为以下类型:

  1. 适用于所有参考类型的通用版本
  2. 每种值类型都有一个版本

由于我有多达 16 个通用参数的元组版本,只是为了更好地衡量,NGEN 正忙着为一个Tuple<T1, T2, T3, T4, ..., T16>对于所有值类型。

我将类型数量减少到更少的泛型参数,NGEN 现在已完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 NGEN 应该挂起并且永远不会完成特定程序集的任何原因? 的相关文章

随机推荐

  • 授权属性的 MVC5 声明版本

    我正在使用 MVC5 和新的 OWIN 身份验证中间件尝试 VS2013 RC 中的一些新功能 所以 我习惯使用 Authorize 属性来按角色限制操作 但我正在尝试使用基于声明 活动的授权 但我找不到它的等效属性 我是否缺少一个明显的东
  • XMPP Bosh 与 SignalR

    XMPP相对于SignalR有更多优势吗 它们都使用 http 长轮询机制 我无法决定是否应该使用 XMPP 作为我的聊天应用程序 还是应该使用 SignalR 并将所有内容保留在我的 IIS 服务器上 SignalR 使用多种传输方式 请
  • 如何在源代码中强制执行单线程构建

    背景 我为一些非常专业的数据处理创建了许多小型实用程序 通常 我是唯一的用户 我什至没有考虑多线程编程 因为运行时性能对于我的用例来说已经足够了 关键资源是我的编程时间 所以我想避免多线程编程所需的任何额外工作 然而 当我将来重用我的代码时
  • android - “您的设备与此版本不兼容”

    我在 Play 商店中放置了一个应用程序 我运行 4 1 Nexus 7 的朋友在尝试安装我的应用程序时收到以下消息 您的设备与此版本不兼容 为什么这个来了 请任何人帮助我 Manifeast file lt xml version 1 0
  • Android 中 Google 地图标记周围的脉冲环动画

    我想在 Android google mapFragment 中的蓝点当前用户位置添加脉冲环动画 如 Uber 有人能帮我解决这件事吗 我找到了向标记添加脉动动画的解决方案 这是地图部分 这里变量 map 表示您的地图 private Ci
  • 如何优化以下for循环代码?

    我有一个非常大的数据集 我正在使用以下代码 计算花费了太多时间 我想减少迭代次数 如何提高代码的性能 import numpy as np Z np asarray 1 2 3 4 5 6 7 8 R np asarray 1 2 3 4
  • Firestore Timestamp.fromDate 不是 UTC

    有人知道如何在 Firestore 中保留 UTC 时间戳吗 In my Angular应用程序 如果我将今天的日期转换为如下所示的时间戳 我最终会得到一个UTC 2 瑞士现在是夏令时 Firestore 数据库中的日期 import fi
  • GAE NDB 安装已部署

    我的 Google App Engine 应用程序使用数据存储区 NDB 所以我要导入 from google appengine ext import ndb 但是当我部署并转到我的应用程序时出现错误 ModuleNotFoundErro
  • 剧作家未收到事件

    我对编剧有意见page waitForEvent https playwright dev docs api class page page wait for event 我希望我的测试在单击链接后导航到不同页面后等待我们的应用程序触发的特
  • 将 openCV C++ 视频流式传输到浏览器

    我正在尝试使用 C 中的 openCV 捕获内置网络摄像头 并进行一些处理 到目前为止 这是有效的 现在我想将网络摄像头流式传输到浏览器 我怎样才能实现这一目标 Should I create a WebSocket Or use a UP
  • 如何将Toast的动态位置设置到视图?

    首先这不是完整的代码 Override public void onCheckedChanged CompoundButton buttonView boolean isChecked Toast toast Toast makeText
  • 如何调试 HTTP 502 错误?

    我有一个 Python Tornado 服务器位于 nginx 前端后面 我偶尔 但不是每次 都会收到 502 错误 我查看 nginx 访问日志 看到以下内容 127 0 0 1 02 Jun 2010 18 04 02 0400 POS
  • python中岭回归的p值

    我正在使用岭回归 ridgeCV 我已经从以下位置导入了它 从 sklearn linear model 导入 LinearRegression RidgeCV LarsCV Ridge Lasso LassoCV 如何提取 p 值 我检查
  • 我们可以从适配器调用startActivityForResult吗?

    是否可以有方法onActivityResume within adapter 称呼startActivityForResult 是的 只需在适配器的构造函数中将活动的上下文传递给适配器即可 此处存储为 mContext 在getView中
  • 仅在专门调用时运行 gradle 任务

    我有一个build gradle创建 java 文件WAR文件 该文件在 Docker 多阶段构建的一个阶段中使用 以生成我在生产 暂存等中使用的 Docker 映像 配置文件 机密位于映像之外 但在开发中 虽然大多数时候我使用普通构建来生
  • 在javascript中将小数转换为六十进制(以六十为基数)

    将十进制数 以十为基数 转换为以 0 9 A Z 和 a x 作为数字的字符串表示的六十进制 以六十为基数 的最佳方法是什么 我计划用 javascript 对其进行编码 但感谢您的帮助 使用示例 gt gt decToSex 60 10
  • RStudio read.xl工作目录错误

    大家好 我在将 xlsx 加载到 RStudio 时遇到困难 我不确定为什么 RStudio 无法看到该文件 我指定的 read excel 路径是否错误 有任何想法吗 R 的新人 Thanks Windows 10 64 位 版本 0 9
  • OpenCL 中的矩阵求逆

    我正在尝试使用 OpenCL 加速一些计算 算法的一部分包括反转矩阵 是否有任何开源库或免费可用的代码来计算用 OpenCL 或 CUDA 编写的矩阵的 lu 分解 lapack dgetrf 和 dgetri 或一般求逆 该矩阵是实数且为
  • 检索 C++ 程序中的所有函数 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我们有一个定义了函数的 C 程序 我们称之为input cpp 现在 我有另一个 C 程序retrieve cpp必须 检索 中的所有功
  • 为什么 NGEN 应该挂起并且永远不会完成特定程序集的任何原因?

    我有一个使用 Visual Studio 2008 构建的 NET 3 5 类库项目 如果我尝试 NGEN 此解决方案文件中的核心程序集 NGEN 永远不会完成 或者至少在我费心让它运行的时间内 比如过夜 不会完成 还有其他人经历过吗 如果