日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
學習筆記JVMLog技術簡介

本文向大家簡單介紹一下JVM Log的概念,初始化和釋放,JVM Log各個class的實現除了很自然地運用了繼承,同時運用重載new/deleteoperator這個C++特有的技巧,也 有效地封裝了JVM Log的創(chuàng)建和釋放功能。

JVM Log簡介

JVM在調試版本下,會輸出hotspot.JVM Log。通過參數-XJVM Loggc:FileName,來設置GC的JVM Log。

JVM Log的實現主要在

 
 
 
  1. \hotspot\src\share\vm\utilities\ostream.hpp  
  2. \hotspot\src\share\vm\utilities\ostream.cpp  
  3. \hotspot\src\share\vm\utilities\xmlstream.hpp  
  4. \hotspot\src\share\vm\utilities\xmlstream.cpp  
  5. \hotspot\src\share\vm\utilities\defaultStream.hpp  
  6.  

主要的class是:outputStream、fileStream、xmlTextStream、defaultStream

繼承關系是:

ResourceObj
  |
  |-- outputStream
       |
       |--- fileStream
       |
       |--- xmlTextStream
             |
             |--- defaultStream

defaultStream::instance是其他模塊調用的主要接口。

JVM Log的初始化

ostream_init()初始化defaultStream::instance
ostream_init_JVM Log()初始化JVM的DebugJVM Log和GC的JVM Log,
其中其核心代碼是:defaultStream::instance->has_JVM Log_file();它轉而調用voiddefaultStream::init_JVM Log();這是真正干活的代碼了。
defaultStream::init_JVM Log的代碼寫的很清晰,其中只有一個C++的語法點需要注意:重載newoperator。

ostream.cppline346
fileStream*file=new(ResourceObj::C_HEAP)fileStream(try_name);
這是因為outputStream的父類是ResourceObj,ResourceObj重載了new和deleteoperator。關于C++語法就不多說了,太多的好書論及了這個問題。

JVM Log的最終釋放

Threads::destroy_vm()
   |
   |--> exit_globals()
         |
         |--> ostream_exit()
              |
              |--> 用delete operator釋放掉各個JVM Log

總結

JVM Log各個class的實現除了很自然地運用了繼承,同時運用重載new/deleteoperator這個C++特有的技巧,也 有效地封裝了JVM Log的創(chuàng)建和釋放功能。

【編輯推薦】

  1. 新一代JVM垃圾回收算法出爐
  2. 探究JVM1.6與JVM1.5性能差距
  3. JVM監(jiān)控在本地和遠程的應用
  4. JVM參數設置使用技巧
  5. JVM啟動參數中標準參數列表速查手冊

網站題目:學習筆記JVMLog技術簡介
文章路徑:http://www.5511xx.com/article/dhipeei.html