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

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

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

服務器之家 - 編程語言 - Java教程 - java中jvm逃逸問題分析

java中jvm逃逸問題分析

2021-04-04 14:46mmp591 Java教程

本篇文章給大家詳細總結了java中jvm逃逸問題的相關內容,有興趣的朋友可以根據小編一起學習下。

引言: 逃逸分析(Escape Analysis)是眾多JVM技術中的一個使用不多的技術點,本文將通過一個實例來分析其使用場景。

概念

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

在計算機語言編譯器優化原理中,逃逸分析是指分析指針動態范圍的方法,它同編譯器優化原理的指針分析和外形分析相關聯。當變量(或者對象)在方法中分配后,其指針有可能被返回或者被全局引用,這樣就會被其他過程或者線程所引用,這種現象稱作指針(或者引用)的逃逸(Escape)。

Java在java SE 6u23以及以后的版本中支持并默認開啟了逃逸分析的選項。Java的 HotSpot JIT編譯器,能夠在方法重載或者動態加載代碼的時候對代碼進行逃逸分析,同時Java對象在堆上分配和內置線程的特點使得逃逸分析成Java的重要功能。

上面的這段話是我引用別人的一段話,文中使用了大量的專業術語,我總結一下它的意思就是:

通過逃逸分析來決定某些實例或者變量是否要在堆中進行分配,如果開啟了逃逸分析,即可將這些變量直接在棧上進行分配,而非堆上進行分配。這些變量的指針可以被全局所引用,或者其其它線程所引用。

開啟設置

默認的在JDK 6u23以上是默認開啟,這里將設置重新明確一下:

強制開啟

?
1
-server -XX:+DoEscapeAnalysis -XX:+PrintGCDetail -Xmx10m -Xms10m

關閉逃逸分析

?
1
-server -XX:-DoEscapeAnalysis -XX:+PrintGCDetail -Xmx10m -Xms10m

實例驗證

代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class OnStackTest {
  public static void alloc() {
  byte[] b = new byte[2];
  b[0] = 1;
  }
  public static void main(String[] args) {
  long b = System.currentTimeMillis();
  for (int i = 0; i < 100000000; i++) {
  alloc();
  }
  long e = System.currentTimeMillis();
  System.out.println(e - b);
  }
  }

開啟逃逸的運行結果:

這里寫圖片描述

未開啟逃逸分析的運行結果:

這里寫圖片描述

分析一下,這里是將2個字節的數據循環分配1千萬次,開啟逃逸的運行時間為8milisecond, 而未開啟則為956, 為未開啟的將近1/120.

差異效果還是非常明顯的…..

總結

棧上的空間一般而言是非常小的,只能存放若干變化和小的數據結構,大容量的存儲結構是做不到。這里的例子是一個極端的千萬次級的循環,突出了通過逃逸分析,讓其直接從棧上分配,從而極大降低了GC的次數,提升了程序整體的執行效能。

所以,逃逸分析的效果只能在特定場景下,滿足高頻和高數量的容量比較小的變量分配結構,才可以生效。

原文鏈接:http://blog.csdn.net/mmp591/article/details/76212535

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久亚洲国产成人影院 | 久见久热 这里只有精品 | 亚洲精品中文字幕第一区 | 视频一区 日韩 | 四虎在线网址 | 91高跟丝袜 | 男人的私人影院 | videos欧美肥婆 | 欧美精品1区 | 精品精品国产自在久久高清 | 国产伦精品一区二区三区女 | 午夜办公室 | 成年女人免费 | 青草热久精品视频在线观看 | 99视频在线国产 | 亚洲人成伊人成综合网久久 | 国产精品怡红院在线观看 | 91制片厂制作传媒网站破解 | 毛片小视频 | 亚洲高清网站 | 国产 国语对白 露脸正在播放 | 亚洲视屏在线观看 | 久久偷拍人 | 欧美日韩一区二区三区韩大 | 欧美肥胖bb | 性福演算法| 小浪妇奶真大水多 | 楚乔传第二部免费观看全集完整版 | 女王脚奴vk | 国产小视频在线 | 欧美精品成人a多人在线观看 | 国产91在线九色 | 91噜噜噜在线观看 | 亚洲精品久久久久福利网站 | 精品免费tv久久久久久久 | 香蕉久久久 | 99国内精品久久久久久久黑人 | 成人永久免费视频 | 日韩一区二区三区四区区区 | 日韩性事 | 精品日韩欧美一区二区三区 |