用Ruby on Rails实现复杂算法

Complex alghoritms with Ruby on Rails

本文关键字:复杂 算法 实现 Rails Ruby on      更新时间:2023-10-16

我正在创建一个Ruby on Rails应用程序,它将使用相当复杂和耗时的算法。

我正在考虑用C或c++函数实现它们。

我将重新申请感激,如果谁有经验,实现复杂的算法到web应用程序可以给我一些指针做什么。

我的假设是Rails本身太慢了,最好使用C或c++。如果是这种情况,如何在C或c++中实现算法,并用Ruby on Rails调用它?

好吧,这是一个非常模糊的问题,但却使谈话变得有趣。

一般来说,你所描述的问题并不是一个真正的技术问题,而是一个业务问题。rails的一些巨大优势是开发、维护等方面的速度。C和c++也是很棒的工具,但是用C构建相同的东西往往比用rails要花更长的时间。这意味着它更贵。

此费用正在进行中。使用rails会损失一些性能,这将需要更多的硬件。这项费用正在进行中。

让我们假设复杂算法是一个长时间运行的函数,可以定义为在User类中发生的如下操作:

def DoIt ()睡10000年

结束

现在让我们假设您需要在同一时间对许多项执行此操作。假设每分钟10000个用户

如果我们在一个直接的线性过程中这样做,我们将看到每分钟10000*10000的运行时间。这可不好。

幸运的是,这些问题一直都在解决。我们现在讨论的是垂直和水平缩放。

垂直:让我们假设,如果你用c语言写它,这个函数就等于:

def DoIt睡5000年

结束

你已经增加了50%,这很好。问题是,如果你的用户负载增加,你就会陷入麻烦。我们在生产系统中经常看到这种情况。

现在的问题是如何横向缩放这个

使用resque(或任何100种解决方案),您可以将此工作踢到后台并分发它。然后,您可以添加服务器来处理进入系统的负载。

现在的问题是,用c/c++来构建它是否值得,或者你最好用rails来构建它并支付额外的硬件费用?或者最好从rails开始,如果需要的话,当你完成你的原型并验证它是需要的时候,转移到c++/c。