用Ruby on Rails实现复杂算法
Complex alghoritms with Ruby on Rails
我正在创建一个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。
相关文章:
- 如何为指向复杂值的迭代器专门化算法?
- 为什么一种算法在相同的时间复杂度下比另一种算法更快?
- 如何在复杂的算法中处理goto函数?
- 如何降低 c++ 中算法的时间复杂度?
- 这个算法的运行时间复杂度是多少?你是如何分析的
- 如何证明以下算法具有 O(nlogn) 时间复杂度
- 三和算法的时间复杂度是多少
- 关于算法的时间复杂度
- 从QTcpSocket上的数据流中连续运行复杂算法的最佳Qt线程解决方案是什么
- 迭代算法的时间复杂度
- 气泡排序算法的空间复杂度.
- 阵列调试不正确的输出,复杂算法
- 最短路径的dijkstra算法的时间复杂度是否取决于所使用的数据结构?
- 这个算法的时间复杂度是多少
- 下面代码的算法复杂度是多少
- malloc()/free()/new/delete/delete[] 的算法复杂度是多少?
- 俄罗斯农民乘法算法的时间复杂度.
- 从字符串中提取数字/数字范围的复杂算法
- 用Ruby on Rails实现复杂算法
- 如何从复杂算法中提取活动代码路径