迴圈建立1000000000乙個物件,阻止棧上分配
棧上分配條件:開啟逃逸分析 & 開啟標量替換
jvm 引數:
-server -xmx10m -xms10m -xx:-doescapeanalysis -xx: printgc
使用 server 模式棄用逃逸分析(-server -xx:-doescapeanalysis),設定堆空間大小10m,初始空間10m,列印 gc 日誌
-server -xmx10m -xms10m -xx: printgc -xx:-eliminateallocations
以上二選一
**:/**
* @version 1.0
* @author: mousycoder
* @date: 2019-06-11 16:55
*/public class onstacktest
public static void alloc()
public static void main(string args)
long e = system.currenttimemillis();
system.out.println(e-b);
}} 輸出:
分析:本次發生的是 minor gc,發生 gc 的原因是堆空間沒有合適的區域能夠存放資料結構導致的,堆從7651k **到 5603k,
作 者 : @mousycoder
原文出處 :
深入淺出 JVM (8) TLAB
tlab thread local allocation buffer 執行緒本地分配緩衝區 執行緒私有分配區,私有分配,公共檢視 占用 eden 區 預設 eden 的1 預設開啟,jvm 會為每乙個執行緒分配一塊 tlab 區域,避免堆物件共享造成的多執行緒執行緒同步。優化多執行緒堆空間分配物件...
深入淺出 JVM (8) TLAB
tlab thread local allocation buffer 執行緒本地分配緩衝區 執行緒私有分配區,私有分配,公共檢視 占用 eden 區 預設 eden 的1 預設開啟,jvm 會為每乙個執行緒分配一塊 tlab 區域,避免堆物件共享造成的多執行緒執行緒同步。優化多執行緒堆空間分配物件...
深入淺出 JVM (3) 浮點數
1 10000001 01000000000000000000000 1 10000001 101000000000000000000000 如果指數字不全為 0 則尾數字首位 1 如果指數字全為 0,則尾數字首位 0 十進位制 1 2 129 127 1 2 0 1 2 2 1 4 1.25 5 ...