【问题标题】:Ruby: Memory Management for "Infinite Processes"Ruby:“无限进程”的内存管理
【发布时间】:2013-07-29 09:14:27
【问题描述】:

我想知道是否应该考虑用 Ruby 编写一个类似服务器的程序(它将运行无限时间),因为我担心内存膨胀。

我已经读过这个:Ruby Memory Management

但是,我仍然在问自己,在 Ruby 中做一些不仅仅是一个小脚本的东西,一般来说是不是一个坏主意。

例如,我有一个 [Ruby] 程序,它每隔几分钟使用 RMagick 创建图像并将它们上传到服务器。我发现的唯一“技巧”是使用叉子(我有一个“循环器”,每隔几分钟就会启动一个叉子,它正在完成所有实际工作)。 是否有更优雅的解决方案来处理 Ruby 中的类似问题,还是我应该寻找另一种语言?

【问题讨论】:

    标签: ruby memory-management


    【解决方案1】:

    Ruby on Rails 是用 Ruby 编写的。这回答了您是否可以将 Ruby 用于长时间运行的服务器的问题。

    【讨论】:

    • HTTP 请求不是长时间运行的。
    • @Stefan HTTP 服务器是。 HTTP 请求首先不是进程。
    • Lennart,我也想过这个问题。但我不确定运行 Rails 的实际 HTTP 服务器是否也是用 Ruby 编写的,或者这些服务器是否使用分叉等“技巧”来保持内存对齐。
    • 我刚查了一下,Nginx是用C写的? Apache 肯定不在 Ruby 中
    • @BenediktB:您的问题不是关于编写长时间运行的 http 服务器,而是关于编写一般长时间运行的服务器。 Ruby on Rails 是一个长期运行的服务器。 HTTP 服务器的具体工作方式取决于您拥有的 HTTP 服务器(您可以将多个不同的服务器与 RoR 一起使用)。不要自己写HTTP服务器,很难。
    猜你喜欢
    • 1970-01-01
    • 2015-10-09
    • 2011-10-11
    • 2016-12-01
    • 2014-05-22
    • 1970-01-01
    • 2012-02-13
    • 2011-10-16
    • 2013-10-09
    相关资源
    最近更新 更多