2010-06-16 27 views
0

幾個 「Java的版本」 時,這僅僅是出於好奇理解高CPU使用並行運行

我有一個小外殼腳本

爲((I = 0;我< 50;我+ + ))

Java的版本&

當我運行由特區這是我的CPU使用情況報告如下
下午7時51分25秒CPU%用戶%不錯%SYSTEM%IOWAIT%盜取%閒置
下午7時51分三十〇秒全部6.98 0.00 1.75 1.00 0.00 90.27
下午7時51分31秒全部43.00 0.00 12.00 0.00 0.00 45.00
7時51分32秒PM全部86.28 0.00 13.72 0.00 0.00 0.00
下午7點51分33秒全部5.25 0.00 1.75 0.50 0.00 92.50

正如你所看到的,在第三行的CPU是100%
我的Java版本是1.5。 0_22-B03。

回答

3

這幾乎是你所期望的。同時加載50個Java虛擬機實例,每個實例都執行所有基本的初始化代碼(保留堆內存,加載核心類庫並初始化它們,啓動垃圾回收器等)。考慮到2秒,它的性能也相當不錯。

類型此命令在你的shell:

java -verbose -version 

輸出是很有趣....

+1

這真的很有趣。所以,當出現在「Java的版本」也不是那麼輕。:) 其實這種好奇心開始與它運行一些shell腳本的一些監控腳本(在Linux中)的性能問題得到一些進程的狀態(使用「 PS「)。 對於我們正在監視的每個產品,此shell腳本每分鐘被調用多次。在此期間,CPU處於100%。 – Prateesh 2010-06-16 19:24:38