概要
そうしないとプロセスが複数立ち上がっても CPU の使用率が偏る気がします
環境
- macOS 15.1.1
- Ruby 3.3.5
- parallel 1.26.3
サンプルコード
def analyze
@data.each_slice(batch_size) do |sliced_data|
tweets = Parallel.map(sliced_data, in_processes: parallel_process_count) do |d|
parse_and_add_tweet(d['tweet']['full_text'])
end
@tweets.append(tweets)
end
end
- batch_size は @data / CPU 数
- parallel_process_count は CPU 数
- Parallel.map で各コアが処理した結果は @tweets に結合していく
- こうすることで各コアに均等に処理するデータが渡り処理が効率化される (各コアのCPU使用率がちゃんと均等化される)
0 件のコメント:
コメントを投稿