gpt4 book ai didi

asp.net-mvc - 对 Mono XSP 托管 Web 应用程序的第一个浏览器请求出现巨大延迟

转载 作者:行者123 更新时间:2023-12-03 02:11:20 26 4
gpt4 key购买 nike

我们使用 Mono (2.10) XSP4 Web 服务器来托管在开放式嵌入式 Linux (ARM) 上运行的 ASP.Net MVC3 Web 应用程序。启动 XSP4 时,需要几秒钟的时间才能准备好并接受请求。到目前为止没有问题。

但是,当浏览器/网站访问者发出第一个请求时,XSP4 会使用大约 55 秒的所有 CPU,直到网页(成功)显示在网络浏览器中。每次启动/重新启动 XSP 后都会发生这种情况。

我的第一个想法是,这是整个 Web 应用程序的即时编译。因此,我构建了一个仅包含二进制文件、.css、.js 和 View (.cshtml) 的部署包。它有效,但仍然有很大的延迟。

然后我尝试使用 Visual Studio 预编译该 Web 应用程序(如某些 Mono 发行说明中所述)。网站再次运行良好,但仍然存在巨大的延迟。

我实际上想到的一些问题:

  1. 有人知道当第一个浏览器请求传入时 XSP 网络服务器在做什么吗?即使它是预编译的 Web 应用程序,这也是即时编译吗?
  2. 为什么每次重新启动后都会这样做?
  3. 总体上可以通过某种方式减少巨大的延迟吗?
  4. 是否可以减少巨大的延迟,以便仅在网络应用程序更新后的第一个浏览器请求上完成(在 XSP 的后续运行之间缓存)?

任何帮助/想法都会很棒。

更新:同时,我发现延迟是由 Mono/ASP.Net 编译器 dcms 构建并将 MVC3 razor View 编译到/tmp/root-aspnet.../引起的,其中映射到内存,因此不是持久的。我现在正在寻找一种方法来控制 XSP4/Mono.WebServer/Mono-Asp.Net 存储这些编译文件的位置。如果有人熟悉这一点,请告诉我;-)

最佳答案

这可能是 native 编译开销(与预编译的作用不同)。您可以检查是否 AOTing the system libraries给你加速:

mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done

关于asp.net-mvc - 对 Mono XSP 托管 Web 应用程序的第一个浏览器请求出现巨大延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8151835/

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