【发布时间】:2011-10-07 14:56:58
【问题描述】:
嗨:我有一个多线程 Java 应用程序。当前线程大小已经是 100。我们目前使用的是 4 核 CPU。但正如人们在不久的将来所看到的,CPU 内核将翻倍,甚至达到 32 个内核。为了充分利用内核,我们需要增加我们的线程池大小。但是您可能知道(也许我错了),当有 10000 个线程时,Java 是好的,但是当线程是 200、500、1000 个线程时,可能会出现性能问题。那么我们是否应该使用其他编程语言,例如scala。我的担心合理吗?
【问题讨论】:
-
由于 Scala 编译为与 Java 相同的字节码,我认为您不会看到任何改进。你会想要切换到像 Erlang 这样的非 JVM 语言。
-
@TMN:最近的一个测试将 Akka (Scala) 与 Erlang 正面交锋,以获得进程内性能。 plus.google.com/u/0/112820434312193778084/posts/HdKFx4VQtJj
-
@Viktor Klang:你看到original benchmark 的后续行动了吗?在调整 Scala 和 Erlang 代码后,Erlang 的速度提高了 6.2 倍。我会查看您发布的文章,应该也有后续文章,应该显示 Scala 的改进。有趣的东西!
-
@TMN:确实很有趣! :-) 但最初的基准测试是 Erlang 与 Scala Actors,而不是 Akka Actors。
-
在对线程数如何影响 IMO 性能做出任何假设之前,您确实需要测量性能。您可能会感到惊讶,即质疑为什么您认为首先需要更多线程...
标签: java multithreading performance scala