我正在开发一个 Web 应用程序,它已经到了我拥有大部分必要功能的地步,我开始担心执行速度。所以我四处寻找信息,我发现了很多关于通过缩小 CSS/JS、设置缓存控制 header 、为静态文件使用单独的域、压缩输出等(以及基本的服务器)来减少页面加载时间的方法。诸如 memcached 之类的辅助技术)。但是假设我已经对所有这些进行了优化,我担心我的 Web 应用程序生成页面实际需要多长时间,即没有缓存命中的纯服务器端处理时间。显然,缩短时间的技巧将取决于我使用的语言和底层库,但合理的目标是多少?为了进行比较,我会对使用现有框架构建的应用程序的处理时间的真实示例感兴趣,执行典型的操作,例如访问数据库和渲染模板。
我用一点代码来测量处理时间(或者至少是我编写的代码中发生的部分),我通常看到 50-150 毫秒范围内的值,这似乎相当高。我很想知道我应该在多大程度上专注于降低它,或者我对这个应用程序的整个方法是否太慢,我应该放弃它并尝试更简单的方法。 (基于 Firebug 的 Net 选项卡,考虑到我在同一台计算机上同时使用客户端和服务器进行测试,我未测量的处理部分通常增加不到 5 毫秒。)
仅供引用,我在 Python 中工作,使用 Werkzeug 和 SQLAlchemy/Elixir。我知道那些不是最有效的技术,但我真的只关心足够快,而不是尽可能快。
编辑 : 澄清一下,我上面引用的 50-150ms 是纯服务器端处理时间,仅针对 HTML 页面本身。由于 CSS/JS/图像的访问时间(尽管我知道可以通过正确使用缓存和 Expires
header 、 Sprite 等,这是我将在不久的将来做的事情)。除此之外,网络延迟还会增加更多时间,因此我们可能会讨论 500 毫秒的总客户端加载时间。
更好的是,以下是 Firebug 的网络选项卡中的一个典型示例的屏幕截图:
我要问的是顶部的 74 毫秒。
最佳答案
恕我直言,在大多数情况下,服务器端客户端 50-150 毫秒都可以。当我测量一些非常知名的网站的速度时,我很少看到这么快的东西。大多数情况下,它大约为 250 毫秒,通常更高。
现在,我想强调三点。
编辑:200 毫秒也可以。如果页面被频繁访问或者如果用户期望页面很快(例如,AJAX 请求期望很快),500 毫秒可能会受到一点伤害。顺便说一下,我在屏幕截图上看到您使用了几个 CSS 文件和十个 PNG 图像。来自 combining CSS合并成一个文件并使用 CSS sprites ,您可能可以减少感知加载时间,尤其是在处理网络延迟时。
关于performance - Web 应用程序的适当页面处理时间是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3108495/