2010-10-01 50 views
2

在C/C++中,常用的做法是在經常使用的結構中安排字段聲明,以便將各種大小的字段緊密排列在一起,並儘可能與字邊界對齊。代碼可讀性犧牲了機器效率。對於Java來說,同樣的做法是否值得?現實世界的Java編譯器/虛擬機在內部重新排列它們以便對齊嗎?我應該在Java中安排字對齊的變量聲明嗎?

回答

1

找到自己的答案的熱點(星期日)JVM:

「對象包裝

對象包裝的功能已經被添加到最小化數據類型的不同尺寸之間的空間浪費這主要是受益在64位環境中,但即使在32位提供了一個小的優勢虛擬機

....(例如字段聲明)

現在,字段重新排序,看起來像這樣:

....(重新排序的字段聲明)

在此示例中,沒有浪費存儲空間。 「

from http://java.sun.com/products/hotspot/docs/whitepaper/Java_Hotspot_v1.4.1/Java_HSpot_WP_v1.4.1_1002_2.html

+0

鏈接已死;我在oracle.com上找不到任何類似的東西。 – Raedwald 2013-05-29 11:18:05

1

如果您擁有運行虛擬機的資源,那麼您可能不需要關心這樣的小細節。至少在典型的服務器端Java應用程序中,該方法通常是爲了清晰和可維護性編寫代碼,並且相信編譯器和虛擬機能夠關注效率。當然,理由當然。

相關問題