【问题标题】:Speed up web application compilation加速 Web 应用程序编译
【发布时间】:2011-01-19 22:18:24
【问题描述】:

我已尝试查看“相关”问题的答案,但它们似乎实际上并不相关......

基本上,我有一个 VB.Net 应用程序,其中包含目录、管理部分(可以更改目录、监控页面视图等)以及客户前端的其他基本页面。

当我在本地机器上编译和运行应用程序时,它似乎编译得相当快并且运行得非常快。然而,当部署在服务器上时,第一个页面加载似乎需要永远和一天的时间(无论它是什么页面,有多少样式表 / JS 文件,有多少图像,页面标记有多大,以及很快)。在此之后,所有页面的加载速度都非常快。我的猜测是这是由于必须从头开始加载代码;在那之后,直到它被回收,应用程序运行得非常快。有谁知道如何加快应用程序的这一部分?我担心一些客户(在慢速连接上,例如我自己的连接速度低于拨号速度)可能会因为加载速度不够快而离开网站而永远不会返回。任何帮助将不胜感激。

提前致谢。

问候,

理查德

PS 如果您参考我的其他一些问题,您会发现更多关于系统的信息,例如大多数数据在第一页加载时加载到对象中 - 我正在慢慢整理,但是它似乎并没有太大的不同。我曾考虑过使用 Linq-to-SQL,但据我所知,这并没有给我太多的灵活性。我宁愿定义自己的系统架构并使其特定于公司,而不是在 Linq-to-SQL 的限制内工作。

【问题讨论】:

  • 它是 Web 应用程序还是网站?是预编译的吗? “永远和一天”到底有多长?
  • 这是一个 Web 应用程序,在 Visual Web Developer 中设置。我总是先编译我的应用程序,然后再将它们发送到实时或测试环境。永远和一天的范围从大约 5 秒到 10 或 15 秒。它似乎变化很大。我的意思是它很容易受到一天中的时间的影响,如果在同一台服务器上有一些高流量的网站,但它似乎在一天中的任何时候都不是特别快。
  • 我的问题是,为什么在发布更新后,您不是第一个查看页面并为您的客户“咬紧牙关”的用户?
  • 我觉得这里肯定有误会。应用程序在大约 5 分钟左右不活动后被回收(这是服务器上的默认设置 - 我无法控制)。在此之后的第一个页面视图很慢。在此之后的任何页面浏览,在前一个页面浏览的 5 分钟内,都非常快。在live.heritageartpapers.com 上查看 - 加载一个页面,等待半小时然后再次加载。然后尝试加载不同的页面。你应该会发现和我一样的结果。
  • 请准确告诉我们您的站点是什么类型的 Visual Studio 项目。 MVC、网站、Web 应用程序?

标签: asp.net vb.net performance pageload load-time


【解决方案1】:

如果可以,最快最简单的解决方案就是将 AppDomain 配置为在一段时间不活动后不回收。 IIS 6 和 IIS 7 的实现方式不同。

另一种选择是编写一个小型实用程序,该程序每 4 分钟从您的站点请求一个页面,并将其设置为另一台一直打开的 PC 上的计划任务。这至少可以防止超时和随后的 AppDomain 回收发生。可以肯定的是,这是一种 hack,但有时任何解决方案都比没有好。

然而,正确的解决方案是precompile your views。具体如何完成和部署将取决于您的网站所使用的 Visual Studio 项目的确切类型。

【讨论】:

  • 感谢 qstarin。我会对此进行调查,但正如我在对我的问题的评论中所说,我认为我对此没有任何控制权。我的意思是我将会话超时设置为一小时,但用户(幸运的是目前只有管理员)在 5 分钟不活动后退出。我在配置文件或控制面板中找不到 5 或 300(秒)或类似内容的引用。
  • 您可以访问 IIS 管理控制台吗?一些共享主机确实允许这样做,例如 Arvixe 提供远程 IIS 管理,我可以在其中使用管理管理单元,就好像我在服务器上从管理工具中提取它一样。它在 IIS 管理中 - 而不是在 web.config 中 - 可以更改该选项。否则,您必须预编译视图。即使您编译项目,默认情况下仍会根据需要编译视图,这就是延迟发生的地方。
  • 我认为我无法访问 IIS。我的意思是基础知识,是的,例如按需回收应用程序或通过其界面更改 web.config。但是我无法使用更高级的功能。话虽如此,明天还是值得联系主机(Intrahost)以了解他们是否能够为我更改它,或者是否有一些我错过的访问方式。
猜你喜欢
  • 1970-01-01
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多