Ruby 2 : Forks/Threads, 如何计算特定机器的效率?

标签 ruby multithreading

假设我有一 block 带 4 个 CPU 的主板。 根据英特尔的说法,每个 CPU 都有 8 个内核/16 个线程。

现在,假设我有一些疯狂的字符串操作任务需要几天才能完成。 有没有一种方法可以计算多少个 fork 和线程会产生最佳性能? 我不确定应该启动多少个 fork 和线程。另外,我不确定启动话题是否对我有好处?

我对 Ruby 特别感兴趣,因为我不确定 Ruby 2 线程与其他线程相比如何。 C++ 线程。

最佳答案

经验法则:每个 CPU 线程有 1 个进程或操作系统线程。

对于 Ruby,至少是 MRI Ruby,这转化为每个 CPU 线程 1 个 fork,因为 MRI Ruby 线程不能真正并行执行。

关于Ruby 2 : Forks/Threads, 如何计算特定机器的效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19079067/

相关文章:

ruby-on-rails - 如何将表单的参数提交到 Controller 中的(API 调用)方法中?

C#:关于成员变量线程安全的问题

multithreading - 在 Octave 中使用线程运行代码

ruby-on-rails - nokogiri:生产环境中的重定位错误

ruby-on-rails - ruby::Module 或者只是 Module

ruby - 没有这样的文件或目录 - ruby

python - ArcGIS 中的多线程与 Python

c# - 多线程运行时在哪里调用Control.Invoke/BeginInvoke?

Java 线程安全的 LinkedHashMap 实现?

asp.net-mvc - ASP MVC 与 Ruby on Rails