我使用線程開發了聊天應用程序。但是當我開始我的應用程序系統行爲非常緩慢,有時會發生堆已滿的異常。我想增加Java虛擬機的堆大小。我該怎麼做?關於增加JVM的堆大小
回答
將-Xmx100m
添加到啓動應用程序時的命令中。這會給你100 MB的堆(你可以改變數字)。
一個聊天應用程序將需要比標準堆大小更多這聽起來很奇怪......
我聊天應用程序有點巨大,包括更多的功能。我有我的應用程序的可執行jar。那我該怎麼做呢? – Vinay 2012-03-20 13:49:01
像'java -Xmx100m -jar yourjar.jar'應該這樣做。 – 2012-03-20 13:57:48
'功能'不一定會佔用堆空間。類被加載到堆的'PermGen'部分。我認爲你默認有64MB堆。這是很多數據。 – 2012-03-20 13:59:18
您可以增加堆大小,但你的更大的問題是「爲什麼我得到異常?」如果您的應用程序沒有正確清理後,增加堆大小隻會延遲不可避免的。
你需要用Visual VM來測試你的應用程序,看看發生了什麼。這會給你更多的路徑,而不僅僅是增加堆的大小。
+1不要只治療症狀!治癒原因! – Terraego 2012-03-20 14:15:14
只需增加JVM的堆大小即可。所有的Java應用程序,甚至簡單的應用程序都會佔用大量內存。看看這article詳細解釋如何增加可用於您的應用程序的內存量;基本上你需要一些額外的參數傳遞給JVM,當你調用java
命令,就像這樣:
java -Xms64m -Xmx256m HelloWorld
在上面的命令,我說,HelloWorld
程序應該有一個初步的堆大小爲64MB,最大爲256MB。嘗試使用這些值並調整它們直到找到適用於您的應用程序的值的組合。
塊引用
大型服務器應用程序通常會遇到兩個問題,這些 默認值。一種是啓動緩慢,因爲最初的堆很小,並且必須在許多主要集合上調整其大小。 更緊迫的問題是,大多數 服務器應用程序的默認最大堆大小不合理地較小。
塊引用
你可以通過命令提示符下使用這些參數 的java -Xms64m -Xmx256m chat_program啓動程序。 這裏Xms64m = 64MB初始堆大小 和Xmx256m = 256MB最大堆大小
謝謝。這是發生的事情。我的服務器需要時間來回應。 – Vinay 2012-03-20 14:12:20
- 1. 增加JVM中的堆大小
- 2. 如何增加Groovy的JVM堆大小?
- 3. 增加Scala的JVM堆大小?
- 4. 如何增加JVM堆大小YouTrack 5.1
- 5. 不能在JVM中增加大於128m的堆大小
- 6. 增加堆大小
- 7. 用於增加堆大小的JAVA_OPTS
- 8. 在MAC OSX中增加JVM最大堆大小10.12
- 9. 增加Tomcat的堆大小
- 10. 如何增加在Windows下運行的JVM堆大小?
- 11. 增加Java堆大小後的JVM錯誤
- 12. Java增加堆大小
- 13. 增加堆棧大小c#
- 14. Elasticsearch增加堆大小
- 15. 增加Java堆大小
- 16. 增加AsyncTask堆棧大小?
- 17. 增加堆棧大小
- 18. 增加堆大小Weka
- 19. Java堆大小增加
- 20. 增加jar文件的JVM大小
- 21. 增加Java小程序的堆大小
- 22. 增加交換大小如何增加堆大小?
- 23. LuaJit增加堆棧/堆大小
- 24. Cassandra緩存大小和JVM堆大小
- 25. Weka(jvm)改變堆大小
- 26. 更改jvm堆大小 - jgrasp
- 27. 關於堆(最大堆和最小堆)
- 28. 爲內存密集型應用程序增加JVM最大堆大小
- 29. 如何增加Carrot2的Java堆大小?
- 30. 的Android:增加調用堆棧大小
這可能對你有幫助http://stackoverflow.com/questions/880855/increase-the-java-heap-size-permanently – kunal 2012-03-20 13:48:41