国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

實戰Java虛擬機之四:提升性能,禁用System.gc() ?

2019-11-14 23:53:11
字體:
來源:轉載
供稿:網友
實戰java虛擬機之四:提升性能,禁用System.gc() ?

今天開始實戰Java虛擬機之四:"禁用System.gc()"。

總計有5個系列

  • 實戰Java虛擬機之一“堆溢出處理”
  • 實戰Java虛擬機之二“虛擬機的工作模式”
  • 實戰Java虛擬機之三“G1的新生代GC”
  • 實戰Java虛擬機之四“禁用System.gc()”
  • 實戰Java虛擬機之五“開啟JIT編譯”

默認情況下,System.gc()會顯式直接觸發Full GC,同時對老年代和新生代進行回收。而一般情況下我們認為,垃圾回收應該是自動進行的,無需手工觸發。如果過于頻繁地觸發垃圾回收對系統性能是沒有好處的。因此虛擬機提供了一個參數DisableExplicitGC來控制是否手工觸發GC。

System.gc()的實現如下所示:

Runtime.getRuntime().gc();

  Runtime.gc()是一個native方法,最終實現在jvm.cpp中,如下所示:

JVM_ENTRY_NO_ENV(void, JVM_GC(void)) JVMWrapper("JVM_GC");  if (!DisableExplicitGC) {   Universe::heap()->collect(GCCause::_java_lang_system_gc);  }JVM_END

  可以看到,如果設置了-XX:-+DisableExplicitGC,條件判斷就無法成立,那么就會禁用顯式GC,使得System.gc()等價于一個空函數調用。

節選自

25612fm立體圖

《實戰Java虛擬機》一書Q交流群:397196583


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭山县| 江达县| 共和县| 桑植县| 龙江县| 洞口县| 松阳县| 定结县| 拉孜县| 北碚区| 万山特区| 商水县| 武汉市| 昌图县| 凤山市| 龙里县| 三明市| 和政县| 偏关县| 五莲县| 新竹县| 天镇县| 凤台县| 河池市| 常德市| 南康市| 靖安县| 大宁县| 江川县| 布拖县| 阳谷县| 南和县| 泰来县| 衡山县| 深泽县| 广宁县| 普格县| 安丘市| 长葛市| 孝昌县| 安义县|