最小化网页加载时间(假设流量较低)

最小化网页加载时间(假设流量较低)

想要让页面瞬间加载。

我的首页加载时间为 1.1 秒,ping 时间为 74 毫秒。类似的(ping 时间为 72 毫秒)英文维基百科页面(实际上在一台使用率很高的主机上,文档大小增加了 40%)加载时间为 0.4 秒。我的网站在一台配备 1 GHz Athlon 的专用主机上,在 APC 下运行 Mediawiki 软件,几乎没有任何流量,而且机器还有一些空闲的核心内存。

有没有办法加快加载速度,或者我可以看看什么?我试过鱿鱼,但没有任何改善。

我使用的测试是time wget url

谢谢。

PS 我问过类似问题,但我认为表述得还不够清楚。

答案1

您必须确定您的瓶颈并将其消除。

  • 您的页面是否需要大量的处理能力和数据库时间?

利用缓存技术,例如您提到的 APC、memcached,调整您的 DB 配置,例如,如果您使用 MySQL,请在 my.cnf 中启用查询缓存。

  • 网络吞吐量是您的瓶颈吗?

为你的服务器获取更好的互联网连接,在开发时使用 CSS sprites [1] 等技术,以尽量减少下载内容所需的单独 HTTP 连接数(尽可能)。下载并查看 YSlow 对你的站点的评价 [2]。

“YSlow 根据雅虎针对高性能网站的规则来分析网页及其速度缓慢的原因。”

  1. http://www.alistapart.com/articles/sprites
  2. https://addons.mozilla.org/en-US/firefox/addon/5369

答案2

我们可以整天猜测页面加载速度慢的原因……或者您可以在 Mediawiki 中启用分析。这应该使您能够看到 PHP、APC、Mysql 等生成页面需要多少时间。这应该为您提供足够的数据来弄清楚下一步该怎么做。我确实怀疑,由于您的服务器不忙,所以它没有提供任何缓存服务,因为您是第一个请求者。

http://www.mediawiki.org/wiki/Profiling#Profiling

答案3

需要考虑的一些事项:

  • 您的一些 page_load、page_init(等等)操作可以稍后再进行吗?如果您使用 AJAX,则可以在页面加载完成后立即填充一些数据。
  • 如果您浏览未编译的版本,则 IIS 第一次将编译并缓存它。否则它仍将缓存它。不要依赖第一次部署后命中来反映准确的响应时间。
  • 将内容从 Default.aspx 移到可行的其他页面。

答案4

Wikipedia 会为未登录的用户缓存所有页面。您看到的是内存中或磁盘上的缓存。登录并加载页面,加载时间会更长。话虽如此,但可以利用大量内存对 MySQL 进行大量调整,使 MediaWiki 运行得相当快。

也可以看看,媒体 wiki 服务器, 和缓存策略。在第一页上,他们声称 Squid 缓存命中率为 78%。他们将渲染的页面存储在一个巨大的 6GB 内存缓存中,并使用 6GB 内存来缓存数据库(缓存命中率为 99%)。

没有这种缓存的默认媒体 wiki 的性能会非常糟糕。Wikipedia 是通过 5 层缓存和内存块组成的 MediaWiki。

相关内容