首页 > 其他分享 >变量逃逸、标量替换

变量逃逸、标量替换

时间:2023-05-31 10:23:32浏览次数:28  
标签:变量 对象 Object public 逃逸 标量 替换

变量逃逸分析和标量替换是一种虚拟机优化技术

对象是聚合量, 基本类型是标量, 如果确定 对象没有逃逸,则会在编译时候把对象拆分成标量存在栈内存中

什么时候进行逃逸分析

 在编译的时候,而不是运行时候

哪些对象可以存在栈内存中

1、小对象,如几十字节

2、大对象和逃逸对象不能存在栈内存中

 

什么叫变量逃逸

方法中有局部对象,外面还会使用这个对象引用,导致 方法运行完对象也没回收就叫做变量逃逸

所有线程共享的引用类型对象都是变量逃逸

public class EscapeAnalysis {
 
     public static Object object;
      
     public void globalVariableEscape(){//全局变量赋值逃逸 
         object =new Object(); 
      } 
      
     public Object methodEscape(){  //方法返回值逃逸
         return new Object();
     }
      
     public void instancePassEscape(){ //实例引用发生逃逸
        this.speak(this);
     }
      
     public void speak(EscapeAnalysis escapeAnalysis){
         System.out.println("Escape Hello");
     }
}

如何开启变量逃逸

-server : JVM运行的模式之一, server模式才能进行逃逸分析, JVM运行的模式还有mix/client
-XX:+DoEscapeAnalysis:启用逃逸分析(默认打开)
-XX:+EliminateAllocations:标量替换(默认打开,加号代表开启,减号代表关闭)

 

标签:变量,对象,Object,public,逃逸,标量,替换
From: https://www.cnblogs.com/julongpaoxiao/p/17445310.html

相关文章

  • 使用 Collections中的replaceAll方法 替换list中的指定元素
    以下实例演示了如何使用Collections类的replaceAll()来替换List中所有的指定元素:importjava.util.Arrays;importjava.util.Collections;importjava.util.List;publicclassImoocStudent{publicstaticvoidmain(String[]args)throwsException{......
  • 备库复制主库密码文件,替换密码文件
    问题背景:搭建oracle主备,拷贝密码文件后,因为密码问题修改了主库密码,需要替换密码文件,记录密码拷贝:asmcmdASMCMD>cd+DATA/ORCL/PASSWORDASMCMD>lspwdtccs.256.XXXASMCMD>pwcopy+DATA/ORCL/PASSWORD/pwdorcl.256.XXX/home/grid/或ASMCMD>pwcopypwdorcl.256.XXX/hom......
  • Typroa主题替换
    Typroa主题替换从这里下载主题1.解压后:2.拷贝到typroa的主题目录下(打开typroa->偏好设置->外观->打开主题文件夹)3.拷贝后:4.重新打开typroa,选择Ctf主题即可。......
  • 中文环境下使用 huggingface 模型替换 OpenAI的Embedding 接口
    OpenAI的文本嵌入衡量文本字符串的相关性。嵌入通常用于:搜索(其中结果按与查询字符串的相关性排名)聚类(其中文本字符串按相似性分组)推荐(推荐具有相关文本字符串的项目)异常检测(识别出相关性不大的异常值)多样性测量(分析相似性分布)分类(其中文本字符串按其最相似的标签分类)嵌入是浮......
  • 【论文解读|GL-Cache 】基于组级学习的缓存替换算法
    论文原文:GL-Cache:Group-levellearningforefficientandhigh-performancecaching|FAST'23源码地址:https://github.com/Thesys-lab/fast23-GLCache论文贡献:提出Group-levelLearning,利用多对象组的特征来适应工作负荷和缓存大小,通过分组来积累更强的学习信号,学......
  • 联想X 3650 M5备机替换操作手册
    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。邮箱:[email protected]生产环境中经常会遇到服务器硬件故障,此时由于各种现实问题如没有相关替换件等原因导致业务长时间。针对这种情况则需要在现场准备一台备机,遇到无修复的硬件问题时可以代替顶替生产服务器......
  • 替换掉tex文件的关键字以便于翻译
    遇到的问题:找到了一篇文献的Tex文件,尝试使用翻译软件翻译成中文以便于阅读,但机翻会极其智障地把不该翻译的也给翻译了,比如\begin{document}给翻译成了\开始{文档}因此,尝试使用正则表达式将Tex中没有必要翻译的关键字与公式给替换掉(1)将关键字替换掉#将Tex文件的关键字......
  • 自定义占位符替换工具类
    添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version></dependency>工具类importorg.apache.commons.lang3.StringUtils;importo......
  • 英文双引号替换成中文双引号
    1.字符串中的英文双引号变成中文双引号///<summary>///替换字符串中的英文双引号为中文双引号///</summary>///<paramname="str"></param>///<returns></returns>publicstaticstringReplaceYinHaoEnToCn(stringstr){stringnewStr="......
  • 合集 替换子关键词
    代码list_ZFI077=df_1.columns.tolist()df_ZFI077=df_1.columns.to_frame(name="列名")#先不重置索引drop依据索引df_ZFI077_1=df_ZFI077.copy().reset_index(drop=True)#index.to_frame()后需重置索引方便赋值fori,jinenumerate(list_ZFI077):ifdf_ZFI0......