【发布时间】:2013-12-14 13:36:59
【问题描述】:
我目前正在开发一个网络应用程序,为此我在 Windows 和 Mac 开发机器之间交替使用。
我的问题是页面在 Windows 上的渲染速度非常很慢,但这不是我的 Ruby 代码运行缓慢,而是静态文件的服务速度很慢。
一个典型的页面需要大约 200 毫秒来呈现并在 dev 中提供服务(Mac 和 Windows 在这里都相似),但它包含大约 50 个静态文件(在生产中它只有 5 到 10 个,一旦它们被缩小和组合,但是在开发中它们仍然是分开的)。
这 50 个文件在 Mac 上大约需要 1.5 秒,但在 Windows 上大约需要 10 秒。这使得测试事情变得相当曲折......
Webrick 和 Thin 都试过了,差不多。
有没有人发现这个问题并知道如何改进?
按照this answer 中的建议,我已尝试将 Webrick conf 更改为“:DoNotReverseLookup => true”,但这没有帮助。
任何帮助将不胜感激
谢谢!
丹尼尔
【问题讨论】:
-
您可以尝试在 Linux 虚拟机中设置它,通常这实际上会更快。
-
你能写更多关于“那 50 个文件”的细节吗?文件是 CSS 文件、JavaScript 文件、JPG 文件、PNG 文件还是其他文件……从哪里加载文件?如果文件是从某个 Web 服务器加载的,那么是否在 HTTP 标头中设置任何缓存选项可能很重要。在 Windows 上使用 Fiddler 或其他一些工具在 10 秒内跟踪 HTTP 流量很有帮助。您可以将流量作为文件上传,并将 URL 包含到跟踪中。如果其他人可以分析它。
-
@AlexanderKosubek 实施起来会非常过分而且非常困难,因为问题仅在 dev.xml 中发生。此外,CSS 文件最初是 SCSS,当它们发生变化时需要进行神奇的预处理,所以我不确定我是否可以使用单独的 Web 服务器来处理静态文件。 (不,预处理不是问题,它只在文件更改时发生,并且延迟发生在每个网页点击中)
-
我认为您需要在此处提供更多信息。我在干净的 Windows 7 64 位机器上安装了 Rails(rails v3.2.13,ruby 1.9.3p392)。我设置了webrick to point to a local static web site。然后我从另一台机器访问了该站点,并且性能很差。然后我根据answer you linked to 更新了我的 webrick 配置。我的性能问题消失了。我还使用我的静态网站创建了一个 rails 应用程序。我得到了与 webrick 网站相同的结果。
标签: windows ruby-on-rails-3 performance thin webrick