【问题标题】:Why does Ruby run so much slower on windows server than on windows dev machine?为什么 Ruby 在 Windows 服务器上的运行速度比在 Windows 开发机器上慢得多?
【发布时间】:2011-11-14 14:11:30
【问题描述】:

首先,如果可以的话,我会切换到 Linux,但由于第三方依赖,我不能。

我正在完成 Rails 应用程序并将其部署到 Windows 2008 服务器上。在服务器上进行测试时,该应用程序被证明非常缓慢,每个请求需要 2-5 秒。在我的开发机器上,它远没有这么慢,据我所知,这种慢是在 Rails 本身内部,即。与我的开发机器上的 Completed 200 OK in 347ms (Views: 298.0ms) 相比,我在服务器上看到了诸如 Completed 200 OK in 1859ms (Views: 1687.5ms) 之类的日志记录。

我知道 Rails 在 Windows 上应该比在 Linux 上慢,但为什么它在 windows 服务器上比在我的 windows 7 开发机器上慢?

在开发中我正在运行 WEBrick,在服务器上我在 apache 下运行瘦。我也试过在我的开发机器上运行瘦,如果有的话,它比 WEBrick 更快。有没有人对可能导致如此大的减速或调查什么有任何建议?任何事情都将不胜感激。

更新:似乎是 Ruby 本身在服务器上的速度明显变慢。在 irb 中运行以下命令在我的开发机器上需要 0.6 秒,但在服务器上平均需要超过 3 秒:

n = Time.now ; x = 0 ; 10000000.times { x += 1 } ; puts Time.now - n

什么可能导致 Ruby 在服务器上运行这么慢(超过 3 倍)?会不会是windows版本?或者是其他东西? Ruby 版本完全相同:ruby 1.9.2p290 (2011-07-09) [i386-mingw32]

再次更新:

觉得之前没有提到这一点很愚蠢,但它是一个 VPS。但是,尽管我愿意接受这会减慢速度 - 慢 3 倍以上是否现实?

【问题讨论】:

  • 服务器负载如何? Ruby 占用大量 CPU,如果负载已经很重,它会很慢。
  • 尝试对服务器进行基准测试与使用一些第三方软件进行开发。 IE。弗罗尼克斯。

标签: ruby windows-server-2008 thin performance


【解决方案1】:

【讨论】:

  • 谢谢,但这些链接似乎主要是关于 Rails 的 启动 时间。如果您查看问题中的测试代码,您会发现我在 irb 中重复分配一个变量,速度会降低 3 倍 - 没有加载 Rails,没有 requires 或任何东西。我得出的结论是,VPS 完全是垃圾。
  • 我不使用 Rails。再看一遍。 :-)
  • 我确实看过它们!他们的目的是加快 load 时间,尤其是通过加快 requiren = Time.now ; x = 0 ; 10000000.times { x += 1 } ; puts Time.now - n 中没有 requires 并且 irb 已经加载,所以我看不出这些链接有什么帮助。
  • 感谢您的建议 :-)
最近更新 更多