如何解决 asp 网站初始加载时间慢的问题?
How to fix slow initial load time on asp website?
当我使用开发人员工具分析网络加载时间时,我发现在加载 Index.aspx 文档时,第一个字节的时间有时长为 8 秒。
我的页面经过优化,大小从不超过 1.4 兆字节。
我将图像优化为低于 100 KB。
我在发布时预编译了我的网站。
我在 web.config 文件中设置了 debug="false"。
网站花了很长时间编译后,所有内容加载速度都非常快。
我正在使用 GoDaddy 的共享 Plesk 主机。
好的,我想我知道问题出在哪里了。 ASP.NET 页面在呈现之前需要进行 JIT 编译。因此,当您第一次向服务器发出请求时,整个站点都会从 CIL .NEt 二进制文件编译为本机机器代码。编译后,本机代码将缓存在 运行 应用程序池中的服务器上。如果服务器有一段时间没有流量(一般默认是 20 分钟),那么缓存的本机代码就会被清除,所以下次你点击页面时,需要一段时间来编译代码。这是 ASP.NET 网站和 WebForms 应用程序的常见问题。有几种方法可以解决这个问题。
1) 手动方法(不理想)- 如果网站只需要在工作时间访问,您可以在早上第一时间访问该网站,之后的每个请求都会很快
2) 延长缓存持续时间,但由于这是托管在 GoDaddy/Plex 上,我不知道您对 AppPool 有多少控制权
3) 创建一个轻量级 windows 服务,其唯一目的是每 10 - 15 分钟对网站执行一次 ping 操作,以保持缓存处于活动状态并保持网站响应
选项 3 感觉有点像 hack,但我已经在许多项目中使用了这种方法,在这些项目中,网站不会在一整天内不断受到用户的访问,但我想确保没有一个用户有糟糕的初始页面加载体验。
找到问题了。 GoDaddy 的共享 Plesk 主机有一个固定的 5 分钟,直到空闲工作进程关闭。当工作进程关闭时,您的网站基本上会进入 "sleep",并且在新访问者访问该网站时需要很长时间才能进入 "wake-up"。
解决方法是获取更多流量或每 5 分钟 ping 一次网站以保持流量 运行。
当我使用开发人员工具分析网络加载时间时,我发现在加载 Index.aspx 文档时,第一个字节的时间有时长为 8 秒。
我的页面经过优化,大小从不超过 1.4 兆字节。 我将图像优化为低于 100 KB。 我在发布时预编译了我的网站。 我在 web.config 文件中设置了 debug="false"。
网站花了很长时间编译后,所有内容加载速度都非常快。 我正在使用 GoDaddy 的共享 Plesk 主机。
好的,我想我知道问题出在哪里了。 ASP.NET 页面在呈现之前需要进行 JIT 编译。因此,当您第一次向服务器发出请求时,整个站点都会从 CIL .NEt 二进制文件编译为本机机器代码。编译后,本机代码将缓存在 运行 应用程序池中的服务器上。如果服务器有一段时间没有流量(一般默认是 20 分钟),那么缓存的本机代码就会被清除,所以下次你点击页面时,需要一段时间来编译代码。这是 ASP.NET 网站和 WebForms 应用程序的常见问题。有几种方法可以解决这个问题。
1) 手动方法(不理想)- 如果网站只需要在工作时间访问,您可以在早上第一时间访问该网站,之后的每个请求都会很快 2) 延长缓存持续时间,但由于这是托管在 GoDaddy/Plex 上,我不知道您对 AppPool 有多少控制权 3) 创建一个轻量级 windows 服务,其唯一目的是每 10 - 15 分钟对网站执行一次 ping 操作,以保持缓存处于活动状态并保持网站响应
选项 3 感觉有点像 hack,但我已经在许多项目中使用了这种方法,在这些项目中,网站不会在一整天内不断受到用户的访问,但我想确保没有一个用户有糟糕的初始页面加载体验。
找到问题了。 GoDaddy 的共享 Plesk 主机有一个固定的 5 分钟,直到空闲工作进程关闭。当工作进程关闭时,您的网站基本上会进入 "sleep",并且在新访问者访问该网站时需要很长时间才能进入 "wake-up"。
解决方法是获取更多流量或每 5 分钟 ping 一次网站以保持流量 运行。