我正在進行一些吞吐量測試。我的應用程序必須在Java中生成CPU負載
- 讀取從JMS
- 做一些處理
- 寫入JMS
我在這裏的目的是模擬#2, '一些處理'。也就是說,在轉發事件之前引入延遲並佔用CPU一段時間(例如500毫秒)。
天真的方法是Thread.sleep(500)
。這會引入正確的執行延遲,但不會執行CPU。
計算斐波納契數是一種選擇。 有沒有人使用過任何有趣的技術來保持CPU在特定時間內忙碌?
理想的特性是:
- 執行各種指令,而不是(例如)只是一個環紡
- 不是的HotSpot虛擬機是要優化爛掉
- 有一個簡單的方法來調整處理週期向上或向下(完成的時間將明顯不同給定硬件)
你能進一步解釋一下爲什麼利用CPU是必要的,但簡單地用螺紋睡覺。睡覺()不適合? – 2008-12-19 20:30:36