web-dev-qa-db-ja.com

既存のJavaアプリケーションにx個以下のコアを使用させることは可能ですか?

既存のJavaプログラムをベンチマークしています。これらはマルチコアCPUの恩恵を受けるように設計されたスレッド化されたアプリケーションです。実行速度に対するコア数の影響を測定したいのですが、私たちは望んでいません。これらのアプリケーションのコードを変更する(そしてできない)。

もちろん、さまざまなマシンでソフトウェアをテストすることもできますが、これは費用がかかり、複雑です。むしろソフトウェアソリューションが必要です。

注:テストプラットフォームはWindows、Linux、またはMacのいずれかであると想定できます。理想的には、これらのプラットフォームのいずれかでテストを実行できるようにしたいと考えています。

33
Daniel Lemire

これはCPUアフィニティの設定と呼ばれ、Javaに固有ではなく、プロセスのOS設定です。

Linuxの場合: http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html

Windowsの場合: http://www.addictivetips.com/windows-tips/how-to-set-processor-affinity-to-an-application-in-windows/

Macでは設定できないようです: https://superuser.com/questions/149312/how-to-set-processor-affinity-on-os-x

35
Chris Shain