代码之家  ›  专栏  ›  技术社区  ›  dsimcha

Jython中隐藏的多线程瓶颈?

  •  5
  • dsimcha  · 技术社区  · 14 年前

    • 显式锁

    • 调用需要同步的库代码(我尝试并行化的算法基本上是从头开始编写的,不使用任何库)

    基本上,算法所做的只是一堆字符串处理、列表和字典查找以及数学运算。我的理解是,与CPython不同,Jython没有GIL。

    3 回复  |  直到 14 年前
        1
  •  4
  •   thobe    14 年前

    访问变量是那些“隐藏”的瓶颈之一。如果所有线程都访问某些共享数据结构,则线程之间将进行同步。

    在Jython和任何其他语言中实现可伸缩性的最佳方法是确保您在每个线程中访问的数据不会从其他线程访问。

        2
  •  3
  •   Don Kirkby    13 年前

    Ahmdahl's Law :

    此外,即使你做纯并行计算,你也会被其他事情所困扰,比如压缩缓存。还要记住,您的代码是在虚拟机上运行的,所以即使您的代码是纯并行的,JVM也可能有一些内部协调阻碍您(垃圾收集显然是一个候选者)。

        3
  •  1
  •   Paul Rubel    14 年前

    你试过吗 performance analysis 包装?即使他们没有明确地支持Jython,我敢打赌它会提供一些帮助。

    YourKit 首先,如果你有权使用许可证。