私は、大量のデータに対して非常に計算量の多い Ruby プログラムの最適化を検討してきました。私は C を知らず、Ruby を選択しました (私もそれをよく知っているわけではありません)。実行にかかる時間は別として、結果には非常に満足しています。これは大量のデータであり、お金をかけずに、自分のシステム リソースを確実に最大化するために何ができるかを知りたいです。
基本的な Ruby プログラムを実行する場合、単一のプロセッサを使用しますか? プロセッサにタスクを明確に割り当てていない場合、Ruby は私のプログラムを読み取らず、魔法のように各プロセッサをロードして、プログラムを可能な限り高速に完了しませんか? 私はないと仮定しています...
Ruby の高速化について少し読んだことがありますが、別のスレッドで、Ruby は真のマルチスレッドをサポートしていないことを読みました (ただし、JRuby はサポートしていると書かれていました)。しかし、プログラムを 2 つのチャンクに「分割」して、別々のインスタンスで実行し、これらを並行して実行するとしたら、これら 2 つのチャンクは 2 つの別々のプロセッサで自動的に実行されるのでしょうか? 4 つのプロセッサがあり、4 つのシェルを開いて、プログラムの 4 つの別々の部分 (1/4) を実行した場合、1/4 の時間で完了するでしょうか?
アップデート
コメントを読んだ後、JRuby を試してみることにしました。アプリの移植はそれほど難しくありませんでした。「peach」はまだ使っていませんが、JRuby で実行するだけで、アプリの実行時間が 1/4 になります!!! 非常識。そんなに変化があるとは思っていませんでした。今すぐ .peach を試してみて、それがどのように改善されるかを見てみましょう。あの後押しは未だに信じられない。
アップデート #2
桃を試してみました。時間をさらに 15% 削ることになりました。したがって、JRuby に切り替えて Peach を使用することは間違いなく価値がありました。
みんな、ありがとう!