gpt4 book ai didi

c# - 使用 CoreRT/另一个 AOT 编译 .net 核心应用程序

转载 作者:可可西里 更新时间:2023-11-01 08:45:27 25 4
gpt4 key购买 nike

我正在 ASP.NET CORE 1.0 上构建 REST API。在生产中,恕我直言,不使用 JIT 是非常有用的,因为带有应用程序的 docker 容器不断扩大和缩小,在 CI 期间一遍又一遍地重新部署,因此对每个已部署容器的即时编译会导致严重的延迟,LB健康检查死亡和其他痛苦。

据我所知,使用 dotnet CLI 进行的 native 编译已停止。我尝试使用 CoreRT 进行构建但没有运气(由于复杂性,需要详细信息)。

由于这个问题非常抽象,我没有提供示例代码或详细信息,所以一开始只有几个问题:

  1. 我的假设是否正确 - 提前编译是否会解决每个路径首次执行缓慢的问题 - 或者 - 是否有任何其他解决方案?
  2. 如果是真的,目前是否可以从 .NET Core 构建“ native ”应用程序(ubuntu x64 目标)?
  3. 如果是,最佳做法是什么 - 我该怎么做?有人有这方面的经验吗?

(目标平台将是 ubuntu-14.04-x64 docker 镜像以及编译平台。出于开发目的,在 OSX 上编译它也很好。)

提前谢谢你。

最佳答案

目前无法进行完整的原生提前编译。这是上面链接的 CoreRT 项目的目标之一,但没有处于任何我称之为生产就绪的状态。去年在 Connect 上的演示应该有相当大的保留。例如,他们仍然没有 reflection subsystem .但是,我们有几个解决方案可以大大减少需要在 JIT 时间生成的代码量。对于 .NET Core,该工具称为 CrossGen这些天它已经很成熟了。

虽然我引起了您的注意,但我还会提到我们正在研究 NGEN/CrossGen 格式的演变,以减轻典型 ni 文件所涉及的典型痛苦的一大块。那在当时的名字下 ReadyToRun

希望对您有所帮助。如果您还有其他问题,请告诉我。

披露:我在 UWP(CoreRT 和 LLILC 等的姊妹项目)的 .NET Native 运行时和编译器团队工作

关于c# - 使用 CoreRT/另一个 AOT 编译 .net 核心应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40098391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com