簡體   English   中英

在64位Windows中使用32位Java

[英]Using 32 bit Java in 64 bit Windows

我在Windows 7 64位中使用Java的32位版本。 系統具有6 GB的RAM。 但是,當JVM由操作系統分配內存時,它不會超過1.5 GB(與32位操作系統相同)。 可能的原因是,JVM沒有足夠的內存。 如果可能的話,如何解決呢? 我無法升級到64位JVM。

Windows上的32位進程仍受與32位Windows操作系統上運行相同的限制。 查看此問題的答案。

在64位操作系統上,32位進程可以訪問多少內存?

Oracle的此指南建議32位JVM可以使用大約1.5GB。

32位JVM的最大理論堆限制為4G。 由於各種其他限制,例如可用交換,內核地址空間使用,內存碎片和VM開銷,在實踐中,限制可能要低得多。 在大多數現代的32位Windows系統上,最大堆大小范圍為1.4G至1.6G。

本文所述

默認最大堆空間是最大為192字節的物理內存的1/2,最大為1G的物理內存的1/4。

我知道您有超過1G的存儲空間,但這也許也適用於您

32位應用程序將無法使用超過4GB的RAM。 實際上,它不能使用超過3GB的內存,因為它需要為操作系統保留一些虛擬內存空間。

除此之外,默認情況下,JVM最多分配四分之一的可用RAM。 如果要覆蓋此使用選項:

java -XX:DefaultMaxRAMFraction=1

它應該使用對32位應用程序可行的所有可用RAM。

資料來源: http : //jvm-options.tech.xebia.fr/#

為了能夠使用更多的內存,您必須升級到64位。 不幸的是,一個64位的JVM無法加載32位的dll,因此對dll的調用必須來自其他進程,並且您必須使用rpc機制與該進程進行通信,而不是直接使用dll。 好多 工作,但可以做到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM