簡體   English   中英

如何檢查仍在使用哪個線程或對象?

[英]How to check what thread or object is still used or not?

誰能告訴我如何查看哪些活動/線程保持活動狀態,而不再由我的應用程序調用?

例如,如果我打開一個HTTP流,然后不刷新,而是繼續打開新的流,則使用的內存將繼續增加,直到GC通過清理為止。 是否有可能以某種方式查看在給定的時間x內已生成並未使用的線程或對象等?

發出此請求的原因是由於在服務器上部署了應用程序,這會繼續增加內存,直到達到限制,從而迫使GC干預以重新建立穩定的內存情況。

我不知道這對分析是否有幫助,但是gcc參數設置為:

-Xms8g -Xmx8g -XX:PermSize = 1024 XX:MaxPermSize = 1024

機器的公羊是18克。

預先感謝所有人

要檢查是否仍使用對象,請執行完整的GC。 此操作沒有捷徑可走。

在執行垃圾回收之前,您不知道是否需要對象。

直到GC通過清理為止,使用的內存將繼續增加。

這在JVM中很正常。 為了提高性能,您想重用昂貴的對象,而不必過多擔心廉價的對象。 您還需要調整GC,以使其在運行時不會對應用程序造成太大影響。

注意:Perm Gen已從Java 8中刪除,從2019年3月開始,只有Java 12可以從Oracle免費更新,因此需要在某個時候考慮進行升級。

暫無
暫無

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

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