国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - JAVA教程 - Java中的逃逸問題心得

Java中的逃逸問題心得

2021-04-04 14:40Java之家 JAVA教程

本篇文章是作者在學習了Java中的逃逸相關知識后的心得分享,一起跟著小編學習下。

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

逃逸分析的定義

逃逸分析,是一種可以有效減少Java 程序中同步負載和內存堆分配壓力的跨函數全局數據流分析算法。
通過逃逸分析,Java Hotspot編譯器能夠分析出一個新的對象的引用的使用范圍從而決定是否要將這個對象分配到堆上。

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

逃逸分析的基本行為就是分析對象的動態作用域:當一個對象在方法中被定義后,它可能被外部方法所引用。
方法逃逸:例如作為調用參數傳遞到其他方法中。

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

逃逸分析的理論基礎

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

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

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

逃逸分析之后的處理操作

經過逃逸分析之后,可以得到對象三種可能的逃逸狀態:

GlobalEscape(全局逃逸): 即一個對象的引用逃出了方法或者線程。例如,一個對象的引用是復制給了一個類變量,或者存儲在在一個已經逃逸的對象當中,或者這個對象的引用作為方法的返回值返回給了調用方法。

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

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

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

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

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

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 黄色片网站在线 | 国产成人精品一区二区三区 | 亚洲一区二区国产 | 久久波多野结衣 | 亚洲国产精品久久久 | 日本福利在线观看 | 天天久久| 国产综合免费视频 | 日韩成人在线播放 | 成人精品一区亚洲午夜久久久 | 人人99| 亚洲影视在线 | 国产成人精品免费视频大全最热 | 久久精品亚洲一区二区 | 中文久久 | 久草视频观看 | 欧美在线a| 亚洲精品日本 | 免费观看黄色12片一级视频 | 精品亚洲一区二区三区 | 综合久久精品 | 男人的天堂在线视频 | 好吊色欧美一区二区三区四区 | 欧美一级内谢 | 91 在线观看| 亚洲第一黄色网 | 国产乱视频 | 日韩一区中文 | 久久久久久亚洲精品 | 久久久婷婷一区二区三区不卡 | 69国产精品成人96视频色 | 日韩激情 | 91精品国产综合久久福利软件 | 欧美午夜一区二区三区免费大片 | 一区二区三区在线播放 | 中文字幕日韩欧美 | 成人免费看黄色 | 一区二区日本 | 日韩一区中文字幕 | 伊人成人222 | 亚洲精品一区二区三区不 |