エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
最近のCPUの多くがマルチコアを採用しています。普通にRubyのプログラムを書くとシングルプロセスなので... 最近のCPUの多くがマルチコアを採用しています。普通にRubyのプログラムを書くとシングルプロセスなので、(ざっくりと)4コアなら25%、8コアなら12.5%が処理速度の限界になります。計算に時間のかかるプログラムを書いていると、フルパワーでやって欲しいと感じます。 というわけで実装してみた。 レシーバを分割 分割したレシーバをforkプロセスに分業させる forkプロセス内で得た配列をシリアライズして一時ファイルに保存 最後に、デシリアライズして固めて返す Kernel::forkがWindowsでは使えないので、*nix専用です。 # x個のforkプロセスでmap処理を実行する module Enumerable def xmap(x = 1, &block) unit_size = count / x + 1 pids = each_slice(unit_size).map.wit