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

想要使页面加载闪烁。

我的首页需要1.1秒才能加载ping 74 ms。 英文维基百科页面(大量使用的主机上实际大40%的文档)在0.4秒内加载类似(ping 72 ms)的页面。 我的网站在1GHz Athlon专用主机上的APC下运行Mediawiki软件,几乎没有任何stream量,机器有一些免费的核心内存。

有没有办法加快负载,或者我可以看到的任何东西? 我尝试了鱿鱼,没有任何改善。

我使用的testing是time wget url

谢谢。

PS我已经问过类似的问题 ,但是我觉得没有说清楚。

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

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

利用caching技术,比如你提到的APC,memcached,调整你的数据库configuration,例如,如果你使用MySQL,在my.cnf中启用查询caching。

  • networking吞吐量是您的瓶颈吗?

为您的服务器获得更好的Internet连接,开发时使用CSS sprites等技术[1]。 用于最小化用于下载内容的单独HTTP连接的数量(在可能的情况下)。 下载并看看YSlow对你的网站有什么看法[2]。

“YSlow分析网页,以及为什么他们放缓基于雅虎高性能网站的规则。”

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

我们可以推测整个页面为什么不快速加载…或者你可以在Mediawiki中启用分析。 这应该让你看到多less时间PHP,APC,Mysql等采取生成页面。 这应该给你足够的数据来找出下一步该做什么。 我怀疑由于你的服务器不忙,因为你是第一个请求者,所以没有任何东西离开caching。

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

有些事情要考虑:

  • 一些你的page_load,page_init(等)的东西可以在以后做? 如果您使用AJAX,则可以在页面加载完成后立即填充一些数据。
  • 如果您正在浏览未编译的版本,IIS将首次编译并caching它。 否则,它仍然会caching它。 不要依靠第一次部署后冲击来反映准确的响应时间。
  • 把东西移出Default.aspx到可行的其他页面。

如果您使用Firefox,请使用Firebug的Net面板和YSlow来确定您的页面停滞的位置。 (我曾经为拥有一个适合在一个以太网框架中的头版而感到自豪,但是这在Web 2.0之前就已经完成了。)

维基百科为未login的用户caching所有页面。 您正在看到内存或磁盘快取caching。 login并加载一个页面,加载需要更长的时间。 话虽这么说 – 有很多的MySQL调优可以用ram来完成,使MediaWiki运行得相当快。

另请参阅媒体wiki服务器和caching策略 。 在第一页他们声称Squidcaching命中率为78%。 它们将渲染的页面存储在一个巨大的6gb内存caching中,并使用6GB的内存来caching数据库(caching命中率为99%)。

没有这种caching的默认媒体维基将有可怕的performance,你看到。 维基百科是MediaWiki通过5层的caching和ram球。