0

下午好,

我正在开发一个 Rails 应用程序,我可以通过进行大量预计算并将结果存储到数据库中来大大加快站点速度,而不是在用户请求时执行计算。

(请注意,我说的是来自数十万数据库行的数百万次迭代。我估计要完成我能做的所有计算,在我的 Macbook Air 上大约需要 4 天。)

我的问题是:将这些计算从 Rails / ActiveRecord 框架中剥离出来,并使用纯 ruby​​ 代码而不使用数据库来完成这一切,会有什么好处吗?在写出结果时,文件 I/O 是否会成为瓶颈?你会如何处理这个问题?

谢谢!

4

1 回答 1

1

我的想法是,如果您需要花费大量时间进行计算,那么您不仅应该远离 rails,还应该远离 ruby​​。与 C 或 C++ 相比,Ruby 非常慢。所以我会使用它们并让它们将结果存储在数据库中(或您的 rails 应用程序可以访问的其他地方)。然后rails可以读取结果。如果这对您来说是一个可行的选择,您可以考虑使用 db 过程,如果您使用的是 SQL db。这些将比 ruby​​ 中的相同算法快得多。

然后当然由您决定何时触发(重新)计算。基于时间的 cron 触发器或基于系统中的条件。

于 2012-05-25T19:08:25.913 回答