在Ruby on Rails应用程序中创建文本文件时,多线程是否有助于提高性能?



我想生成一个输出文本文件,输入来自数据库。数据库非常庞大,在创建输出文本文件的每个部分时需要检查许多条件。所以,这是一个有点耗时的过程。

多线程将有助于提高rails应用程序的性能吗?

多线程可能有助于提高rails应用程序的性能,但这在一定程度上取决于所运行的Ruby版本。使用MRI Ruby,只有在进行大量I/O操作(从数据库读取数据、向磁盘写入内容等)时才能得到改进。由于存在全局解释器锁,条件检查将不会并行运行。

然而,当你使用Rubinius 2或JRuby时,你会得到没有全局解释器锁的ruby解释器,因此能够使用线程并行地进行条件检查。

最后,这还取决于你的实现和需求(是否可能并行执行所有检查,或者是否存在依赖关系等)

我将提示多线程可能有帮助。最简单的方法是在程序运行时运行'top'。如果一个cpu核心被锁定为100%,而另一个是空闲的,那么您可能会从多线程或多进程中受益。这是很明显的情况——如果不是很清楚,您必须进一步挖掘并确定瓶颈。

最新更新