范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

一般的Java项目需要JVM调优吗?注意哪些?

  Java因其开源、高效、跨平台、生态好的特性使得它成为当前主流的编程开发语言,即使之前使用其它技术栈的公司现在也慢慢向Java平台迁移。相信很多Java同学在面试时都会被问到JVM调优之类的问题,但似乎感觉日常工作中又很少进行JVM调优,那对于一般的Java项目到底要不要进行JVM调优呢?什么是JVM调优?
  在说JVM调优前,我们得先说说JVM。什么是JVM呢?JVM其实是Java虚拟机(Java Virtual Machine)的简称,Java之所以能跨平台,其实靠的就是JVM。
  JVM它是一个虚拟机,虽然JVM本身上是一个计算机程序,但它也有自己的一整套软硬件环境。
  就好比你新买来了一台电脑,装好了系统后,你能正常使用电脑了。但很多用户是需要对电脑进行一些定制化设置的,比如桌面背景等。同样,JVM在安装后,即使不进行任何额外设置也能正常工作,但在某些场景下同样需要对JVM进行一些调优,而调优的手段就是更改JVM参数。JVM调优的目的及调优项
  1、JVM调优的目的
  JVM调优的目的就是:尽可能使用较小的内存和CPU来让Java程序获得更高的吞吐量及较低的延迟。
  2、JVM常见调优项
  JVM最为常见的调优就是更改JVM默认的参数,比如:
  初始堆大小:-Xms
  最大堆大小:-Xmx
  新生代大小:-Xmn
  永生代最小值:-XX:PermSize
  永生代最大值:-XX:MaxPermSize一般项目到底要不要进行JVM调优?
  其实JVM默认的设置是能满足常规项目需要的,看上去JVM调优只要改改参数什么的很简单,其实并非我们所想的那么简单。
  JVM调优如果调整得不好反而会影响整个项目的稳定,正常情况下不建议大家对JVM进行调优,除非你的Java项目内存占用过高而你的服务器内存过低时。
  下载下来的jvm已经调试好了,除非无法满足使用需求,否则不要轻易修改
  一般的项目肯定是不需要的。其实 JVM 调优的可操作的空间很小,绝大部分时候我们也仅仅只用到几个内存设置参数,设法降低 Full GC 频率,实际上调整 JVM 带来不了多少性能提升。程序性能不佳,撑不住业务,往往问题出在程序本身,很多时候都是程序中有大列表或者创建对象频率过高,导致内存增长过快频繁Full GC,CPU因为Full GC跑满。
  首先,直接答复一次题主的问题,一般项目肯定是不需要进行JVM调优的,因为JVM 本身就是为这种低延时、高并发、大吞吐的服务设计和优化的,我们很少需要去改变什么。所以,我们往往更偏重于应用服务本身的调优。
  在一些应用中,比如大数据计算引擎,是一种非常极端的JVM应用,对延时的要求并不高,但对吞吐量要求很高,会有大量的短生命周期对象产生,同时也有大量的对象生存时间非常久,我们就需要对特定的一些 JVM 参数进行修改,不断调整,做到最优。
  再比如生产环境中出现内存溢出,我们需要判断是由于大峰值下没有限流,瞬间创建大量对象而导致的内存溢出,还是是由于内存泄漏而导致的内存溢出。对于内存泄漏导致的,这种问题就是程序的 Bug,我们需要及时找到问题代码进行修改,而不是调整 JVM。
  如果要调优,需要有参考指标,不要为了调优而调优,要有一个目标参考值,最终要达到什么样的调优结果,没有指标的调优都是瞎指挥!以下列出几个衡量系统性能的常用指标:响应时间:响应时间是衡量系统性能的重要指标之一,响应时间越短,性能越好,一般一个接口的响应时间是在毫秒级。响应时间还包括数据库响应时间、服务端响应时间、网络响应时间、客户端响应时间。TPS:指系统接口的 TPS(每秒事务处理量),因为 TPS 体现了接口的性能,TPS 越大,性能越好。在系统中,吞吐量分为两种:磁盘吞吐量和网络吞吐量。计算机资源分配使用率:通常由 CPU 占用率、内存使用率、磁盘 I/O、网络 I/O 来表示资源使用率。这几个参数好比一个木桶,如果其中任何一块木板出现短板,任何一项分配不合理,对整个系统性能的影响都是毁灭性的。
  对于JVM调优来说,主要关注以下两方面:JVM内存空间分配参数设置和垃圾回收器的选择。内存空间的分配设置:JVM 内存分配不合理带来的性能表现并不会像内存溢出问题这么突出,最直接的表现就是频繁的 GC,这会导致上下文切换等性能问题,从而降低系统的吞吐量、增加系统的响应时间。具体的实现包括调整堆内存空间减少 Full GC、调整年轻代减少 MinorGC、设置合理的 Eden 和 Survivor 区的比例。选择合适的垃圾回收器:垃圾回收主要是指堆和方法区的回收,堆中的回收主要是对象的回收,方法区的回收主要是废弃常量和无用的类的回收。垃圾收集器的种类很多,不同的场景有不同的选择。对于每次操作的响应时间要求比较高的,我们可以选择响应速度较快的 GC回收器,比如 CMS 回收器和 G1 回收器;而对系统吞吐量有较高要求时,就可以选择 Parallel Scavenge 回收器来提高系统的吞吐量。
  对于还在正常运 的系统:
  1. 可以使 jmap来查看JVM中各个区域的使 情况
  2. 可以通过jstack来查看线程的运 情况, 如哪些线程阻塞、是否出现了死锁
  3. 可以通过jstat命令来查看垃圾回收的情况,特别是fullgc,如果发现fullgc 较频繁,那么就得进 调优了
  4. 通过各个命令的结果,或者jvisualvm等 具来进 分析
  5.  先,初步猜测频繁发送fullgc的原因,如果频繁发 fullgc但是 直没有出现内存溢出,那么表示fullgc实际上是回收了很多对象了,所以这些对象最好能在younggc过程中就直接回收掉,避免这些对象进 到 年代,对于这种情况,就要考虑这些存活时间不 的对象是不是 较 ,导致年轻代放不下,直接进 到了 年代,尝试加 年轻代的 ,如果改完之后,fullgc减少,则证明修改有效
  6. 同时,还可以找到占 CPU最多的线程,定位到具体的 法,优化这个 法的执 ,看是否能避免某些对象的创建,从 节省内存
  阿里、京东、蚂蚁等大厂面试真题解析对于已经发 了OOM的系统:
  1.  般 产系统中都会设置当系统发 了OOM时, 成当时的dump 件(-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/base)
  2. 我们可以利 jsisualvm等 具来分析dump 件
  3. 根据dump 件找到异常的实例对象,和异常的线程(占 CPU ),定位到具体的代码
  4. 然后再进 详细的分析和调试
  总之,调优不是 蹴 就的,需要分析、推理、实践、总结、再分析,最终定位到具体的问题
  F:softJavajdk1.8bin>jcmd -hUsage: jcmd  or: jcmd -lor: jcmd -hcommand must be a valid jcmd command for the selected jvm.Use the command "help" to see which commands are available.If the pid is 0, commands will be sent to all Java processes.The main class argument will be used to match (either partiallyor fully) the class used to start Java.If no options are given, lists Java processes (same as -p).PerfCounter.print display the counters exposed by this process-f  read and execute commands from the file-l  list JVM processes on the local machine-h  this help      -------------  如果我回答对你有帮助,请关注我一下。或有其他问题也可以关注我,给我发私信
  一般项目还真不用,随便配置个1G的堆内存够用,除非遇到oom问题或者效率实在有问题而其他方面已经优化。

ios15。3,有什么新功能?历经一个多月,经过3个版本的更新迭代,iOS15。3终于在今日凌晨发布终极测试版,即iOS15。3RC。苹果官方并未给出说明内容,不过有一项声明变更。当用户的蜂窝或WiFi网络禁用商家这次没骗人!网友买到全新美版iPhone13,还是未激活状态如果你在某平台买iPhone,你可能听过商家的一句话,就是美版iPhone要过海关,所以美版iPhone都是激活过的,所谓的激活未使用。其实美版不仅有激活过的,也有未激活的,只是未手机里nfc功能是什么意思?NFC是什么意思?NFC是英文全称NearFieldCommunication的缩写,中文意思是近距离无线通信,简称近场通信。NFC是飞利浦公司和索尼公司共同开发的一种非接触式识别为什么年纪大了,电话不响了,信息没有了,朋友越来越少了?感谢邀请回答问题!年纪大了,特别是退出工作岗位后的同志,也是很正常的事情。这里的问题,如果仍在自己的工作岗位,那么另当别论。想当初,因工作之情,或许经常热热闹闹,或许经常东来西往,除夕过年都没有收到一条朋友的祝福,是不是很失败?无所谓啊,相信自己,关爱自己,努力自己,该付出时就付出,过好自己的生活就行了呗!我倒是觉得无所谓,现在人好像都是这样,如果你有用,都围着你转,如果你没有什么利用价值了,都不在围绕你研究发现红橙色更易招蚊子英国自然通讯杂志日前刊载的一项研究显示,蚊子偏爱红色橙色黑色等特定颜色,却易忽略绿色蓝色紫色等颜色。研究人员认为,这有助解释蚊子是如何找到叮咬对象的。只有雌性蚊子会吸血。美国华盛顿过年入手红色iPhone8Plus超喜庆,但查询发现是ID机,有隐藏ID大家都拿到压岁钱了没,今天这位网友拿到压岁钱的第一时间就入手了一台红色iPhone8Plus,据他说过年买红色iPhone8Plus非常应景。但让人意外的是,过年买台手机,居然也能技术看盛会!全球最大32K分辨率LED显示系统?在刚结束的冰雪盛会开幕式上,国师用对影像艺术的极致追求再次为全球观众呈现了一场美轮美奂的视觉盛宴。这其中最吸引人眼球的要算主会场正中心作为背景的LED地面显示系统。这个超高分辨率的闲暇时刻收拾的桌面,灯光音效理线布置最近收拾了下桌面,整理下理线布置,整体在关灯的时候还是氛围感满满的关灯效果前后布局主要还是把主要操作空间留足开灯效果1开灯效果21。灯光部分一共7处1。走线部分(1)启用USB扩展一手握小屏旗舰小米12mini曝光对于小米12mini的传言,最近是没有间断过。毕竟小米出小屏旗舰机,这也是第一次听。在小米12系列发布前,就已经有对12mini进行曝光,只是那时也只是一种猜测。这几天对小米12m国外论坛一帖子火了!小屏iPhone有爱慕者,超大屏难道没有吗?近日,国外科技数码论坛的一个帖子火了!吸引了数十万人的点赞评论转发。原话是Smallphoneshaveadmirers,bigonesdont?中文译为小屏手机有爱慕者,大屏难道
现代的这场赌,注定不会输,盘点第五代途胜L的三大亮点在先秦孙武孙子九地中有这么一句话投之亡地然后存,陷之死地然后生。可能很多人没有读过,但相信大家也能够理解这句话的意思!当然如果这句话的意思理解不了,有一个成语那么大家就会非常熟悉了10万都能入手瑞虎8,却买传祺GS3POWER,是咋想的?随着汽车工业得到快速发展,在物价普遍看涨的时代,汽车却是越来越廉价,尤其是在自主品牌的国产车中,一些代步车型甚至可以做到5万以内就能够入手,在510万这个价格区间,就能够买到一台各福特也是逼急了,新车定位中大型SUV,57座任选,配2。0T不到17万说到自主品牌的国产车和合资品牌车型之间最大的差别是什么?相信很多人会说品牌影响力和溢价能力的差距可靠性的差距技术上的差距等等,不过在我看来,随着自主品牌这些年得到了快速的发展,从可混动界霸主,24年零事故,斩获5个NO。1,丰田双擎有多可怕?导语混动界霸主,24年0事故,斩获5个NO。1,丰田双擎有多可怕?在现如今的汽车市场中,为了响应节能减排的政策,混动车型是越来越受到汽车厂商以及消费者的关注,而且混动车型如今在全球国产豪车再添新车,长超5米V6引擎,下探10w看啥宝马x3随着国内汽车消费体量越来越大,在全球汽车消费市场的比重也是越来越高,而庞大的消费群体自然成为了各大车企必争的一块大蛋糕。所以我们也能看到越来越多车企为了提升品牌影响力,在国内纷纷加上海迪士尼几乎不用排队,网友怒刷N遍极速光轮近期由于上海浦东的疫情,外地来上海玩的同学少了,去浦东的少了,迪士尼之行,取消的多了完全可以理解,处于中风险区域不远的地方(祝桥镇昨天已经降为低风险),游客有忌惮是完全可以理解了,将门虎子有10位首长的儿子在越南牺牲,有多少人记得他们?古时候有句话常被提及千金之子,坐不垂堂。这句话的含义是家中积累超过千金的富人,坐和卧都不会靠近屋堂的屋檐,怕被屋瓦掉下来砸到。可在新中国成立后的一段特殊岁月里,却有一群旁人眼中的千日本2020理想的成熟女星排行榜!没想到清纯可爱d她上榜综艺乘风破浪的姐姐大火说明大家的审美不再只聚焦于少女身上成熟的女性美也一样动人近日,日本Oricon公信榜公布了根据投票选出了女性眼中理想的成熟女性榜单那么,在岛国女性眼中美丽又优憨豆被传抑郁离世!66岁的牛津博士,为我们演了一辈子欢乐如果要说哪一部外国喜剧最为经典,除了憨豆先生,单词君真的想不出第二部了。小时候,在一家人的抢遥控器大战中,憨豆先生是最没有争议的那一个。而就在前几天呢,憨豆先生迎来了自己66岁的生迪拜最帅王子壕无人性的生活曝光!如果拥有交换身份的机会,你想体验谁的生活?实不相瞒,小编最想魂穿的人,是迪拜王储哈姆丹(SheikhHamdan)。他是公认的中东最帅王子,更是万千女网友心里的梦中情人!喏,正面怼窒息了!港版蜗居40挤下五口人,新婚夫妻只能住11隔断房最近看了一部很不TVB的TVB香港爱情故事一周华语口碑剧集榜第一听这剧名传统TVB豪门恩怨??阿Sir和Madam的精英职场恋爱史??NONONO。都不是。这简直活脱脱一部中国香港