一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 簡述Java編程語言中的逃逸分析

簡述Java編程語言中的逃逸分析

2020-12-31 15:42wmingstar Java教程

這篇文章主要介紹了簡述Java編程語言中的逃逸分析,包括其定義、作用、類型及理論基礎等相關內容,十分具有參考價值,需要的朋友可以了解下。

        大家一般認為new出來的對象都是被分配在堆上,但這并不是完全正確,通過對Java對象分配過程分析,我們發現對象除了可以被分配在堆上,還可以在?;騎LAB中分配空間。而棧上分配對象的技術基礎是逃逸分析和標量替換,本文主要介紹下逃逸分析。

1.逃逸分析的定義

        逃逸分析:是一種可以有效減少Java 程序中同步負載和內存堆分配壓力的跨函數全局數據流分析算法。

        通過逃逸分析,Java Hotspot編譯器能夠分析出一個新的對象的引用的使用范圍從而決定是否要將這個對象分配到堆上。

        Java在Java SE 6u23以及以后的版本中支持并默認開啟了逃逸分析的選項。Java的 HotSpot JIT編譯器,能夠在方法重載或者動態加載代碼的時候對代碼進行逃逸分析。

        逃逸分析的基本行為就是分析對象的動態作用域:當一個對象在方法中被定義后,它可能被外部方法所引用。

        方法逃逸:例如作為調用參數傳遞到其他方法中。

        線程逃逸:有可能被外部線程訪問到,譬如賦值給類變量或可以在其他線程中訪問的實例變量。

2.逃逸分析的理論基礎

        基于 Jong-Deok Choi, Manish Gupta, Mauricio Seffano,Vugranam C. Sreedhar, Sam Midkiff等在論文《Escape Analysis for Java》中描述的算法進行逃逸分析。

        該算法引入了連通圖,用連通圖來構建對象和對象引用之間的可達性關系,并在次基礎上,提出一種組合數據流分析法。由于該算法是上下文相關和流敏感的,并且模擬了對象任意層次的嵌套關系,所以分析精度較高,只是運行時間和內存消耗相對較大。

        絕大多數逃逸分析的實現都基于“封閉世界(closed world)”的前提:所有可能被執行的,方法在做逃逸分析前都已經得知,并且,程序的實際運行不會改變它們之間的調用關系 。但當真實的 Java 程序運行時,這樣的假設并不成立。Java 程序擁有的許多特性,例如動態類加載、調用本地函數以及反射程序調用等等,都將打破所謂“封閉世界”的約定。

逃逸分析之后的處理操作

        經過逃逸分析之后,可以得到對象三種可能的逃逸狀態
        GlobalEscape(全局逃逸): 即一個對象的引用逃出了方法或者線程。例如,一個對象的引用是復制給了一個類變量,或者存儲在在一個已經逃逸的對象當中,或者這個對象的引用作為方法的返回值返回給了調用方法。

        ArgEscape(參數級逃逸):即在方法調用過程當中傳遞對象的應用給一個方法。這種狀態可以通過分析被調方法的二進制代碼確定。

        NoEscape(沒有逃逸):一個可以進行標量替換的對象。該對象可以不被分配在傳統的堆上。

        編譯器可以使用逃逸分析的結果,對程序進行優化。

        堆分配對象變成棧分配對象:一個方法當中的對象,對象的引用沒有發生逃逸,那么這個方法可能會被分配在棧內存上而非常見的堆內存上。

        消除同步:線程同步的代價是相當高的,同步的后果是降低并發性和性能。逃逸分析可以判斷出某個對象是否始終只被一個線程訪問,如果只被一個線程訪問,那么對該對象的同步操作就可以轉化成沒有同步保護的操作,這樣就能大大提高并發程度和性能。

        矢量替代:逃逸分析方法如果發現對象的內存存儲結構不需要連續進行的話,就可以將對象的部分甚至全部都保存在CPU寄存器內,這樣能大大提高訪問速度。

總結

以上是本文關于逃逸分析的全部內容,希望對大家有所幫助。

原文鏈接:https://www.2cto.com/kf/201709/676131.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91制片厂制作果冻传媒123 | 亚洲国产福利精品一区二区 | 亚洲天堂h | 色呦呦tv | 17岁俄罗斯csgo | h片免费网站 | 网红思瑞一区二区三区 | 91精品国产综合久 | 51精品| 日韩一区二区三区不卡视频 | 国产精品免费网站 | 日韩一区二区在线视频 | 四虎在线网站 | 美女露全身永久免费网站 | 亚洲国产一区二区三区a毛片 | 欧美jjvideo | 91麻豆国产精品91久久久 | 成人免费草草视频 | 免费看3d小舞被躁视频网站 | 男人女人叉叉叉 | 天堂8在线天堂资源bt | 欧美国产精品 | 欧美成人影院免费观 | 皇上撞着太子妃的秘密小说 | 奇米色7777| 射综合网 | 国产成人夜色91 | www久久com| 国内自拍网红在综合图区 | 午夜国产精品福利在线观看 | 欧美日韩国产超高清免费看片 | 九九精品国产 | www国产精品 | sao虎影院桃红视频在线观看 | 国产亚洲玖玖玖在线观看 | 黄色aaa级片 | 西西人体大胆啪啪私拍色约约 | 男男双性生子产乳高辣h | 情趣内衣在线观看 | 日韩精品在线视频观看 | 国产第一综合另类色区奇米 |