スループットテストを行っています。私のアプリケーションはする必要があります
- JMSから読み取る
- いくつかの処理を行います
- JMSへの書き込み
ここでの私の目標は、#2の「いくつかの処理」をシミュレートすることです。つまり、遅延を導入し、イベントを転送する前に、所定の時間(たとえば、500ミリ秒)CPUを占有します。
素朴なアプローチはになりThread.sleep(500)
ます。これにより、実行に適切な遅延が発生しますが、CPUは実行されません。
フィボナッチ数の計算は1つのオプションです。 CPUを一定時間ビジー状態に保つためだけに、興味深い手法を使用した人はいますか?
理想的な特性は次のとおりです。
- (たとえば)ループで回転するだけでなく、さまざまな命令を実行します
- HotSpotVMが最適化するものではありません
- 処理期間を上下に調整する簡単な方法があります(完了するまでの時間はハードウェアによって明らかに異なります)