2024年3月5日 星期二

[研究]Java : Scan progress is slowing due to JVM garbage collection

[研究]Java : Scan progress is slowing due to JVM garbage collection

2024-03-01

Fortify SCA掃描程式原始碼,16GB RAM 幾乎耗盡。

sourceanalyzer.exe -Xmx10000M -Xss16M 

[warning]: Scan progress is slowing due to JVM garbage collection, which may indicate low memory or low cpu power allocated for GC. For details on making more memory or GC resources available, please consult the user manual.

[警告]:由於 JVM 垃圾收集,掃描進度變慢,這可能表示分配給 GC 的記憶體或 CPU 功率較低。 有關使更多內存或 GC 資源可用的詳細信息,請參閱用戶手冊。

********************************************************************************

User

請推薦解決方法 

[warning]: Scan progress is slowing due to JVM garbage collection, which may indicate low memory or low cpu power allocated for GC. For details on making more memory or GC resources available, please consult the user manual.

ChatGPT

這個警告表明 JVM 垃圾回收(GC)進程正在影響掃描進度,可能是因為內存不足或為 GC 分配的 CPU 功率不足。要解決這個問題,你可以考慮以下幾個方法:

  1. 增加內存分配: 檢查你的應用程序運行的 JVM 配置,確保給 JVM 分配的內存足夠。你可以通過調整 -Xmx 參數增加 Java 虛擬機的最大內存。例如,-Xmx4g 將最大內存設置為 4GB。
  2. 優化垃圾回收設置: 調整垃圾回收相關的參數以優化性能。這包括調整 -Xms 和 -Xmx 之間的比例,以及選擇正確的 GC 算法。例如,如果你的應用程序具有長時間的停頓,你可以考慮切換到 G1 GC 或者其他更適合你的應用程序的算法。
  3. 監控系統資源: 使用監控工具(如JConsole、VisualVM等)來監視系統資源使用情況,特別是內存和 CPU 使用情況。這可以幫助你確定是否需要增加硬件資源來解決問題。
  4. 分析和優化代碼: 優化應用程序代碼以減少對內存和 CPU 的使用。這可能涉及減少對象的創建和優化算法以減少計算量。
  5. 使用分佈式系統: 如果單個服務器無法滿足你的應用程序的需求,考慮將應用程序部署到多個服務器上,並使用負載均衡器來分發流量。

通過實施這些方法中的一個或多個,你應該能夠解決 JVM 垃圾回收對掃描進度的影響。

https://docs.oracle.com/cd/E19957-01/820-0104/gazce/index.html

https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html

**********

似乎加 RAM 是較好解法,但因某緣故較難。

[研究]哪種發行版 JRE 效能較佳
https://shaurong.blogspot.com/2024/03/jre.html

(完)

沒有留言:

張貼留言