假设我有一 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/