国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

OpenJDK9 Hotspot 虛擬機(jī)內(nèi)部對(duì)象內(nèi)存管理

W_BinaryTree / 1224人閱讀

摘要:前言語言可以精確控制對(duì)象內(nèi)存分配,出于性能考慮框架系統(tǒng)程序基本都會(huì)自己造輪子開發(fā)各種內(nèi)存管理模塊也不例外,它通過和方法的訪問級(jí)別以及重載和方法來管理虛擬機(jī)內(nèi)部對(duì)象的內(nèi)存內(nèi)存管理相關(guān)的基類定義了幾個(gè)基類來作為大部分對(duì)象的基類顧名思義,它們只能

前言

C++ 語言可以精確控制對(duì)象內(nèi)存分配,出于性能考慮 C++ 框架 or 系統(tǒng)程序基本都會(huì)自己 "造輪子" 開發(fā)各種內(nèi)存管理模塊. hotspot 也不例外,它通過 new 和 delete 方法的訪問級(jí)別以及重載 new 和 delete 方法來管理虛擬機(jī)內(nèi)部 C++ 對(duì)象的內(nèi)存.

內(nèi)存管理相關(guān)的基類

hotspot 定義了幾個(gè)基類來作為大部分 C++ 對(duì)象的基類:

StackObj

_ValueObj

MetaspaceObj

AllStatic

StackObj

StackObj 顧名思義,它們只能在 棧 上分配,StackObj 將 new 和 delete 運(yùn)算符申明成 private 禁止外部訪問,外部類嘗試在堆上分配 StackObj 類型的對(duì)象都會(huì)編譯期報(bào)錯(cuò),內(nèi)部在調(diào)用 new,delete 會(huì)拋出異常

// allocation.hpp

class StackObj ALLOCATION_SUPER_CLASS_SPEC {
 private:
  void* operator new(size_t size) throw();
  void* operator new [](size_t size) throw();
#ifdef __IBMCPP__
 public:
#endif
  void  operator delete(void* p);
  void  operator delete [](void* p);
};
_ValueObj
// allocation.hpp

class _ValueObj {
 private:
  void* operator new(size_t size) throw();
  void  operator delete(void* p);
  void* operator new [](size_t size) throw();
  void  operator delete [](void* p);
};
MetaspaceObj

MetaspaceObj 是所有在 meta space(元對(duì)象空間?)對(duì)象的基類,調(diào)用 delete 函數(shù)進(jìn)行析構(gòu)會(huì)拋出異常

// allocation.hpp

class MetaspaceObj {
    ...
    void* operator new(size_t size, ClassLoaderData* loader_data,
                       size_t word_size, bool read_only,
                       Type type, Thread* thread) throw();
                       // can"t use TRAPS from this header file.
    void operator delete(void* p) { ShouldNotCallThis(); }
}
AllStatic

AllStatic 類及其子類的所有字段和方法都是 static 類型的,所以在 構(gòu)造 和 析構(gòu) 函數(shù)中直接拋出異常

// allocation.hpp

class AllStatic {
 public:
  AllStatic()  { ShouldNotCallThis(); }
  ~AllStatic() { ShouldNotCallThis(); }
};
總結(jié)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/69856.html

相關(guān)文章

  • OpenJDK9 Hotspot java 虛擬機(jī)入口

    摘要:假設(shè)源代碼目錄為函數(shù)函數(shù)在,它處理完命令行參數(shù)后跳轉(zhuǎn)到函數(shù)處理命令行選項(xiàng)函數(shù)在,它調(diào)用加載這個(gè)就是編譯的產(chǎn)出在系統(tǒng)下在使用加載動(dòng)態(tài)庫并獲取函數(shù)入口地址在系統(tǒng)下在熟悉的同學(xué),對(duì)下面的代碼應(yīng)該會(huì)感到很親切創(chuàng)建對(duì)象,并將控制流跳轉(zhuǎn)到呵呵,在 假設(shè) openjdk 源代碼目錄為 jdk9dev main函數(shù) main 函數(shù)在 jdk9dev/jdk/src/java.base/share/na...

    JaysonWang 評(píng)論0 收藏0
  • OpenJDK9 Hotspot : synchronized 淺析

    摘要:前言網(wǎng)上各路大神總結(jié)過各種關(guān)于內(nèi)部實(shí)現(xiàn),看別人的文章總覺得不過癮,所以有了這篇文章,嘗試再扒一次的底褲數(shù)據(jù)結(jié)構(gòu)在分析源代碼之前需要了解相關(guān)概念,比如等,參考網(wǎng)絡(luò)上各種解說或者之前系列文章,這里重點(diǎn)介紹一下,,每個(gè)在內(nèi)部都有一個(gè)的對(duì)象與之對(duì)應(yīng) 前言 網(wǎng)上各路大神總結(jié)過各種關(guān)于 hotspot jvm synchronized 內(nèi)部實(shí)現(xiàn),看別人的文章總覺得不過癮,所以有了這篇文章,嘗試再扒...

    Amio 評(píng)論0 收藏0
  • OpenJDK9 Hotspot:Zero 解釋器 初探

    摘要:準(zhǔn)備工作假設(shè)源代碼目錄為編譯時(shí)啟用了解釋器參考編譯和調(diào)試調(diào)用棧先在函數(shù)參考虛擬機(jī)入口中設(shè)斷點(diǎn),然后在的方法中設(shè)置斷點(diǎn)通過宏獲取當(dāng)前,然后創(chuàng)建第個(gè)棧幀,然后進(jìn)入解釋執(zhí)行字節(jié)碼 準(zhǔn)備工作 假設(shè) openjdk 源代碼目錄為 jdk9dev 編譯 openjdk 時(shí)啟用了 zero 解釋器(參考 OpenJDK9 Hotspot Mac OSX 編譯和調(diào)試) 調(diào)用棧 先在 JavaMai...

    zhangqh 評(píng)論0 收藏0
  • OpenJDK9 Hotspot : Thread

    摘要:前言本文從類的方法的內(nèi)部實(shí)現(xiàn)入手,分析多線程相關(guān)的數(shù)據(jù)結(jié)構(gòu)類和原理類方法類的方法用于啟動(dòng)線程,方法內(nèi)部調(diào)用了方法在源代碼中搜索,可以看到對(duì)應(yīng)函數(shù)在源代碼中搜索函數(shù)核心代碼計(jì)算線程堆棧大小創(chuàng)建對(duì)象初始化啟動(dòng)線程在創(chuàng)建時(shí)傳入了一個(gè)函數(shù)指針, 前言 本文從 Java Thread 類的 start 方法的內(nèi)部實(shí)現(xiàn)入手,分析 Hotspot JVM 多線程相關(guān)的數(shù)據(jù)結(jié)構(gòu)(類)和原理 Threa...

    roundstones 評(píng)論0 收藏0
  • JAVA運(yùn)行時(shí)簡(jiǎn)述(HotSpot)

    摘要:拆解虛擬機(jī)的基本步聚如下首先,要等待到自身成為唯一一個(gè)正在運(yùn)行的非守護(hù)線程時(shí),在整個(gè)等待過程中,虛擬機(jī)仍舊是可工作的。將相應(yīng)的事件發(fā)送給,禁用,并終止信號(hào)線程。 本文簡(jiǎn)單介紹HotSpot虛擬機(jī)運(yùn)行時(shí)子系統(tǒng),內(nèi)容來自不同的版本,因此可能會(huì)與最新版本之間(當(dāng)前為JDK12)存在一些誤差。 1.命令行參數(shù)處理HotSpot虛擬機(jī)中有大量的可影響性能的命令行屬性,可根據(jù)他們的消費(fèi)者進(jìn)行簡(jiǎn)...

    hosition 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<