前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >撩改JVM常见调优参数

撩改JVM常见调优参数

作者头像
石的三次方
发布于 2021-01-05 14:47:52
发布于 2021-01-05 14:47:52
91800
代码可运行
举报
文章被收录于专栏:石的三次方石的三次方
运行总次数:0
代码可运行

JVM参数

1. 标配参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -version
java -help
java =showversion

2. -X参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-Xint  //解释执行
-Xcomp //第一次使用就编译成本地代码
-Xmixed //混和模式

3. -XX参数

3.1 Boolean类型

「公式:-XX:+代表增加,-代表剔除某个属性值」

查看某个Java进程是否开启了某些JVM参数的方法:

  • jps -l获取所有后台运行的Java进程
  • jinfo -flag JVM参数 进程ID获取这个Java程序对该JVM参数的开启状况

**案例:**当前程序是否打印了GC收集细节

代表当前程序没有开启垃圾回收

这是开启以后的

3.2 KV类型

「公式:-XX:属性key=属性值value」

「案例:」

-XX:MetaspaceSize=128m修改元空间大小

-XX:MaxTenuringThreshold修改对象最大存活年龄

-XX:InitialHeapSize初始堆大小

「修改前」

「修改后」

jinfo -flags获取所有JVM开启的参数」

3.2.1 Xms和-Xmx

XmsXmx分别代表堆的标准大小和最大空间。

Xms相当于-XX:InitialHeapSize

Xmx相当于-XX:MaxHeapSize

3.3 查看JVM默认参数

java -XX:+PrintFlagsInitial -version打印Java版本信息和初始默认JVM参数设置

java -XX:+PrintFlagsFinal -version打印被更新过的JVM参数设置

  • 冒号表示由于平台或者开发者的缘故导致该参数被修改

java -XX:+PrintCommandLineFlags打印一些基本信息,包括使用的垃圾回收器

打印了使用的垃圾回收器

4. JVM常用参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-Xms 初始大小为物理内存的1/64  等价于-XX:InitialHeapSize
-Xmx 默认为物理内存的1/4    等价于-XX:MaxHeapSize
-Xss 单个线程栈大小 一般为512~1024k
-Xmn 设置年轻代大小
-XX:MetaspaceSize 设置元空间大小
-XX:+PrintGCDetails 输出GC日志信息
-XX:SurvivorRatio  设置Ende区在新生代中的占比
-XX:NewRatio  设置老年代在堆中的占比
-XX:MaxTenuringThreashold 设置对象的最大年龄

「关于新生代中的Eden和Survivor的占比问题:笔者JDK得出的是6:1,但查看官方文档得出的结论是8:1」

5. 对象的引用类型

5.1 强引用

Java的默认引用类型,所有的对象创建都是强引用,当对象引用变量为null的时候被回收

5.2 软引用

通过SoftReference设置软引用,当内存空间不足的时候,软引用对象被直接回收

5.3 弱引用

通过WeakReference设置若引用,当GC运行的时候,就会将这个类型的对象回收

5.3.1 什么实用实用软引用或者虚引用

本地图片加载的时候,通常我们会将之加载到缓存中。但是当图片数量急剧增加的时候就有可能发生OOM,所以我们可以通过虚引用或者软引用保存图片的对象

例如我们可以构建一个HashMap对象封装URL和图片对象映射,其中的图片对象使用弱引用或者软引用的方式。当内存不足的时候自动回收内存中的图片对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HashMap<String,SoftReference<Bitmap>> imageCache =
    new HashMap<>();
5.3.2 WeakHashMap

存储一个弱引用的Key,当一个key是无效的时候,该键将被移除

5.4 虚引用

通过PhantomReference设置虚引用,该引用相当于没有引用,通过get方法不能获取引用的值,唯一的作用就是配合ReferenceQueue使用,在gC以后被放入引用队列中,做一些后续操作,比如通知等等。

5.5 引用队列

软引用,弱引用,虚引用被GC以后不会立即消失,而是添加到了ReferenceQueue引用队列中,可以做后续的操作。

「案例演示」

可以看到在GC以后引用队列中有值了

6. OOM

6.1 栈溢出

java.lang.StackOverflowError栈溢出,栈的默认空间大小为512~1024k当超过这个界限以后就会触发这个错误

6.2 堆溢出

java.lang.OutOfMemoryError:Java heap space堆溢出。

「常见的场景:大对象(直接超过老年区大小);强引用对象的不断出现」

6.3 GC超出资源限制

java.lang.OutOfMemoryError:overhead limit exceededGC占据了系统98%的运行,但是仅仅回收了2%不到的内存空间。导致重复GC,但空间没法释放。爆出这个错误

6.4 堆外内存溢出(直接内存溢出)

java.lang.OutOfMemoryError:Direct buffer memory堆外内存溢出,使用NIO的时候会出现

NIO中使用

6.5 不能够再创建本地线程

java.lang.OutOfMemoryError:unable to create new native thread

默认大小为1024个

6.6 元空间溢出

java.lang.OutOfMemoryError:Metaspace

默认大小为20M

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 石的三次方 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
《失控玩家》:“元宇宙”爆火出圈,打破虚拟和现实的边界!
最近被刚上映的《失控玩家》刷屏了,这部影片讲述了“小贱贱”瑞安•雷诺兹饰演的银行职员“盖”在电子游戏中走上人生巅峰的故事。在电影中,主人公盖每天重复过着一模一样的乐天派生活,早上起来和鱼缸里的鱼打招呼,穿一件蓝色衬衫,然后去买杯咖啡。身边却充斥着各种暴力,抢劫、枪战、开枪射杀行人,但他并不觉得奇怪,感觉就像正常生活一样,不闻不问。到了银行,和好朋友保安聊天。像往常一样,有人进来抢劫银行,他们非常熟练的卧倒,等待抢劫完毕,然后该干嘛干嘛。
thingjs
2021/09/02
1.1K0
《西部世界》与《头号玩家》:哪个才是人类与人工智能相处的正确方式?
---- 新智元编译 来源:Medium、WashingtonPost 作者:Avinash Royyuru、Scott Tobias 编译:刘克一、Sean、克雷格 【新智元导读】《西部世界》第二季最新一集上线,讲述机器人拥有意识后造成“天下大乱”。这部电视剧的核心是在探讨自主意识是如何产生的,剧中埋伏的“意识金字塔理论”或许会给我们答案。此外,《西部世界》跟电影《头号玩家》也有共同探讨的地方:人类该如何与人工智能相处? 昨天,热门美剧《西部世界》第二季上线,主题是讲述机器(接待员)产生自我意识后
新智元
2018/05/29
6270
死侍在新片中,扮演了一个 AI 驱动的 NPC
来源:HyperAI超神经 本文约2200字,建议阅读5分钟 人工智能让小角色成为了大英雄。 近期上映的电影《失控玩家》讲述了一个普通的游戏 NPC ,因为加入了 AI 技术,将其改造成了一个想要扭转玩家命运、改变游戏的大人物。游戏 AI 的普及,让《失控玩家》中描绘的场景逐渐得以实现。 关键词:游戏AI 强化学习    最近在北美和中国上映了一部以电子游戏为创作背景的电影《Free Guy》(中文片名译作《失控玩家》),由《死侍》的扮演者瑞安·雷诺茨主演。 全片轻松搞笑,特效精致,暑期档里表现亮眼,全球
数据派THU
2023/03/29
5530
死侍在新片中,扮演了一个 AI 驱动的 NPC
剧本杀入局元宇宙,如何在现实世界完成这场虚拟游戏?
  元宇宙,MetaVerse。由Meta与Verse组成,Meta代表超越,Verse取自宇宙Universe,组合在一起被译为“元宇宙”。
科技旋涡
2022/03/30
3540
剧本杀入局元宇宙,如何在现实世界完成这场虚拟游戏?
AI产生自我意识,「古墓丽影」劳拉觉醒!电子游戏革命来了
最近,一位YouTube作者Foxmaster制作了一个经典游戏「古墓丽影」的原版视频。
新智元
2023/09/09
2200
AI产生自我意识,「古墓丽影」劳拉觉醒!电子游戏革命来了
让游戏更好玩 AI已经立功了
  在人工智能发展史上,游戏AI 一直扮演着策划者、推动者和宣传者的角色,除了推动AI在更多领域拓展外,也给游戏体验感带来了许多改善,这些改进未必为人所知晓,却被许多人体验到。比如,上世纪90年代末,微软推出经典游戏《帝国时代》,如果玩家选择人机对战,游戏AI即使处于战斗不利状态中,也可能通过“作弊”获得大量资源,与玩家展开拉锯战,实现逆势翻盘。
科技旋涡
2022/04/28
3540
银幕上的智能革命:从终结者到造物主,人工智能电影史上的11个里程碑
从有益的到极具破坏性的、从小型到巨大,以及或是善良或是邪恶的那些拥有类人特质的机器。
新智元
2024/02/26
6760
银幕上的智能革命:从终结者到造物主,人工智能电影史上的11个里程碑
不要低估实现难度,聊聊当下热议的“元宇宙”是什么?
来源:Datawhale 本文约3300字,建议阅读8分钟“元宇宙”到底是什么? 元宇宙,是由英文Metaverse翻译过来的,来源于尼尔-斯蒂文森1992年的发表的科幻小说《雪崩》。Meta是“超越、变化”的意思,Verse就是“宇宙“,连在一起就是“超越现实的宇宙”。 1.小说中的描述 人类通过“Avatar”数字替身(没错就是阿凡达,生活在一个叫作“Metaverse”(元宇宙)的虚拟三维空间,在这个世界里面拥有一整套完整的经济系统,数字替身可以在里面自由的娱乐、社交、消费、创作。如同电影《头号玩家》
数据派THU
2022/03/04
4030
游戏人工智能 读书笔记 (三) 游戏和人工智能的相互影响
Chapter 1.3 Why Games for Artificial Intelligence
鹅厂优文
2018/06/25
5640
《西部世界》人工智能是奴隶还是恶魔?
如今这部据传拍摄花费五千八百万美元、HBO接棒《权力的游戏》的美剧《西部世界》已经播出过半,凭着烧脑剧情、人工智能题材,令该片持续成为热门话题。
博文视点Broadview
2020/06/12
6600
AIGC时代的「数字生命计划」已启动!
即使总是伴随着关于伦理、人性与法律等问题的争论,人类从来没有放弃过挣脱时空限制、实现灵魂永恒的尝试。近几年《上载新生》《万神殿》《爱死机》《西部世界》这些剧作,无不在重温着二十多年前《黑客帝国》和《楚门世界》的内核。
机器之心
2024/01/23
2520
AIGC时代的「数字生命计划」已启动!
有史以来最佳22部最佳人工智能和机器人电影
感受到了人工智能技术对智能手机,计算机,工业和医疗保健部门的影响。在此列表中,将记住在电影界指导生活和技术世界的人工智能的思考。22部能够深刻反映人工智能技术的电影。
代码医生工作室
2020/03/06
12.7K0
有史以来最佳22部最佳人工智能和机器人电影
生成式智能体——来自NPC们的独立宣言
---- 新智元报道   编辑:拉燕 【新智元导读】Q版西部世界!生成式智能体来袭,我们是人格独立的NPC! 游戏里的NPC都见过吧? 不管NPC是干嘛的,有任务的接任务,没任务的尬聊,他们共同的特点就是——翻来覆去就是那几句话。 原因也很简单,这些NPC还不够智能。 换句话说,传统的NPC都是先给他们安排好剧本,安排好话术,该到哪步就说哪句话。 而随着ChatGPT的出现,这些游戏角色的对话可以在只输入关键信息的前提下,自我生成。 这就是斯坦福和谷歌的研究者们在做的事——用人工智能创造出的生成式智能
新智元
2023/05/09
3090
生成式智能体——来自NPC们的独立宣言
Facebook AI“失控”事件,一个瑕疵引发的妖魔化闹剧
来源 创新工场公众号 量子位 经授权转载 AI失控!奇点来临?这些看上去就让人爆炸的字眼,在过去的几天里,通过媒体和社交网站持续发酵。AI阴谋论甚嚣尘上。 大家关心并担忧未来,是否正如末日预言家所说,
量子位
2018/03/28
1.3K0
Facebook AI“失控”事件,一个瑕疵引发的妖魔化闹剧
万字长文:AI陪伴产品的终极解法?
导语|此篇文章是本人及多名朋友联合 产品人Super黄 共同创作的深度长文,欢迎对这个话题感兴趣的各位“浩浩爸”们疯狂戳戳俺,一起讨论交流~
腾讯大讲堂
2024/01/03
1.1K0
万字长文:AI陪伴产品的终极解法?
通过西部世界来盘点近来人工智能研究的发展
大数据文摘作品,转载具体要求见文末 编译团队|廖远舒 邱猛 曹翔 《西部世界》背后的科学 简单回顾近几年的人工智能研究 警告:此文含电视剧《西部世界》剧透。 (译者注:关于《西部世界》:故事设定在未来世界,在一个庞大的高科技成人主题乐园中,有着拟真人的机器“接待员”能让游客享尽情欲、暴力等欲望的放纵,主要叙述被称为“西部世界”的未来主题公园。它提供给游客杀戮与性欲的满足。但是在这世界下,各种暗流涌动。部分机器人出现自我觉醒,发现了自己只是作为故事角色的存在,并且想摆脱乐园对其的控制;乐园的管理层害怕乐园的
大数据文摘
2018/05/22
7870
AIGC加持游戏剧情,无限故事的游戏交互体验来了
机器之心发布 机器之心编辑部 游戏公司 Cyber Manufacture Co. 发布了最新的 AIGC 技术预览 Quantum Engine,用户可以用自然语言随意与 NPC 互动,AI 会根据用户的表达,实时生成剧情互动。 在 24 年前上映的《黑客帝国》里,救世主尼奥对抗着一个人工智能程序所控制的世界,人们第一次见识到 AI 技术所带来的震撼。 二十多年前看,这是科幻片。二十多年后看,像不像预告片? 在一些竞技领域,AI 多年前就已达到、甚至超越人类的最高水平。最近一年来,生成式 AI 在绘画、
机器之心
2023/03/29
6720
AIGC加持游戏剧情,无限故事的游戏交互体验来了
火爆全网的“数字人”,到底是个啥?
对于这场游戏,有些人玩得很嗨,到了结尾不肯退场,总希望无限期玩下去。例如秦始皇,总想着灵丹妙药、长生不死。
鲜枣课堂
2022/10/05
5620
火爆全网的“数字人”,到底是个啥?
【论文解读】大模型与游戏-综述和路线图
近年来,对大型语言模型(LLM)的研究出现了爆炸式的增长,同时伴随着公众对这一话题的参与。虽然LLM最初是自然语言处理中的一个领域,但它在包括游戏在内的广泛应用和领域中都显示出了非凡的潜力。本文调查了LLM在游戏中的各种应用程序的现状,并确定了LLM在游戏中可以扮演的不同角色。重要的是,作者讨论了LLM在游戏中未来使用的未开发领域和有希望的方向,并提出了LLM在游戏领域中的潜在和局限性。作为LLM和游戏交叉点的第一个全面调查和路线图,希望本文能够在这一令人兴奋的新领域为开创性的研究和创新提供基础。
合合技术团队
2024/05/22
5220
【论文解读】大模型与游戏-综述和路线图
AI意识觉醒?那个「爱」上AI的谷歌工程师刚刚被解雇了!
---- 新智元报道   编辑:好困 David Aeneas 【新智元导读】一个多月前,宣称「AI意识觉醒」的谷歌软件工程师Blake Lemoine被强制休假,刚刚,谷歌宣布他被解雇了。 「我不在的时候,请好好照顾它。」 这是谷歌软件工程师Blake Lemoine离开前留下的最后一句话。 现在,他被正式开除了。 强制休假一个月,还是被炒了 据Blake透露,他在周五收到谷歌公司的辞退邮件的,并被拉进了一个视频会议宣布此事。当时,他曾要求第三方出席会议,但被谷歌拒绝了。 Blake表示,目前自
新智元
2022/07/26
4900
AI意识觉醒?那个「爱」上AI的谷歌工程师刚刚被解雇了!
推荐阅读
相关推荐
《失控玩家》:“元宇宙”爆火出圈,打破虚拟和现实的边界!
更多 >
LV.4
腾讯产品运营经理
目录
  • JVM参数
    • 1. 标配参数
    • 2. -X参数
    • 3. -XX参数
      • 3.1 Boolean类型
      • 3.2 KV类型
      • 3.3 查看JVM默认参数
    • 4. JVM常用参数
    • 5. 对象的引用类型
      • 5.1 强引用
      • 5.2 软引用
      • 5.3 弱引用
      • 5.4 虚引用
      • 5.5 引用队列
    • 6. OOM
      • 6.1 栈溢出
      • 6.2 堆溢出
      • 6.3 GC超出资源限制
      • 6.4 堆外内存溢出(直接内存溢出)
      • 6.5 不能够再创建本地线程
      • 6.6 元空间溢出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档