代码之家  ›  专栏  ›  技术社区  ›  Mark Rendle

多少红宝石线程太多?

  •  3
  • Mark Rendle  · 技术社区  · 15 年前

    我正在编写一个merb应用程序,它使用simpledb和tokyo tyrant的组合进行存储。对于这两个数据存储,我正在实现 在(列表)中 通过为中的每个值旋转线程来键入功能 列表 然后合并结果集。记住这是一个Web应用程序,我应该创建的线程数量有限制吗?Ruby1.8.7,所以它们不是内核线程。

    3 回复  |  直到 15 年前
        1
  •  1
  •   sarahhodne    15 年前

    线程对于您在这里要做的事情来说似乎是一种糟糕的方法,如果您不能使用JRuby,那么我将完全放弃线程。但是,您可以创建一个加载数据库的Ruby文件,并使用 benchmark library 要做一些基准测试,哪个数字是最快的。你可能还想看看你用过的记忆。

        2
  •  1
  •   Sam Saffron James Allen    15 年前

    对我来说,你的问题听起来是IO限制的,所以多线程一个核心可能会有所帮助。

    在您的主Ruby循环中的大多数时间,您可能都在等待东京暴君和简单数据库,它们在单独的多线程进程中运行。

    那么有多少线程呢?谁知道?你必须 基准和测量 .

        3
  •  0
  •   khelll    15 年前

    如果您使用的是mri,那么在这种情况下使用线程将不会有很大的帮助,因为mri使用的绿色线程在计算操作方面没有帮助。我相信使用JRuby(原生线程)会有帮助。 我一直听说对于本机线程,最好使用(核心数+1)来利用可用的核心。