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

一般的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 <pid | main class> <command ...|PerfCounter.print|-f file>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问题或者效率实在有问题而其他方面已经优化。

新生儿头型是什么?新生儿头型是什么?新生儿头型是指新生儿头的形状。健康的新生儿头型主要与遗传因素有关,出生后囟门闭合前,头型可受睡姿等影响,出生后1218个月囟门闭合后,头型则基本定型。小儿如果习惯新生儿吐奶是怎么回事?新生儿吐奶是怎么回事?新生儿吐奶可能与喂养方式不当疾病等有关。新生儿吐奶也称溢奶,在新生儿中比较常见,大多是正常生理性原因引起的现象,主要是由喂养不当导致的,可以通过调整喂养方式改脸上起皮和白色碎屑是怎么回事?脸上起皮和白色碎屑是怎么回事?脸上起皮和白色碎屑通常是皮肤干燥的表现,可能由缺乏维生素引起,也可能由不良生活习惯年龄相关的皮肤老化气候变化等因素引起。缺乏维生素如果存在偏食,体内维新生儿喂养知识有哪些?新生儿喂养知识有哪些?新生儿喂养原则是尽可能母乳喂养,按需喂养。母乳不足时,合理添加配方奶。新生儿尽可能母乳喂养为主,母乳是孩子的最优良最合理的天然食物,不仅能提供充足的营养水分,新生儿吐泡泡正常吗?新生儿吐泡泡正常吗?新生儿吐泡泡有生理性的是正常现象,也有可能是疾病因素引起的。新生儿吐泡泡多数是生理性的正常现象。新生儿唾液分泌增加,口腔较浅,吞咽能力差,吞咽不及时就可能吐泡泡为什么退休老人同样的工龄,养老金却差好几千?我用一些现实情况回答你一一个在烟草公司退休,在职时按300买社保,一个在工厂退休,在职时按60买社保,能一样吗?二两个人同时参军,若干年后,一个晋升师长,一个当三年兵后转至工厂做普索尼a7m4出来后,佳能的R6尼康Z62会不会降价?那得看看是嘛德行的,参数还没确定,谈论佳尼降价为时过早。大家认为74上市炒到多少合适?参考现在S3从23999炒到3W2索尼a7m4出不出来,佳能R6和尼康Z62最终都会降价,时间自驾游河西走廊要多少预算,怎么样?这个问题没有一个具体的答案,因为每个人的玩法不一样,消费观念也不相同,只能说一个大概的数目。首先来说,河西走廊不错,作为丝绸之路的一部分,在古代是很繁荣昌盛的,古时候是指甘肃兰州,怎么用尼康1424镜头拍摄?怎么用尼康1424镜头拍摄?尼康1424应称呼为尼克尔1424f2。8。我在使用上用的不是太多,也有过拍摄的照片。使用时,注意畸变。有畸变可以丰富照片的冲击力,使用不当使照片效果东一万多的二手车能买吗?1万多的二手车是什么品牌?车型?老夏利,老奇瑞,老桑塔纳,老捷达,老微型面包车这些都是不超过1万元的,再收拾收拾一下完全可以行驶的,只不过买回来以后车辆检测站你就变成了VIP客户了下个月结婚,但发现怀孕了,由于家长比较封建,不敢跟家长说,怎么办?我的建议真的没啥好怕的,跟双方家长说都可以的,这是双喜临门的好事,至于说那些说闲话的话,理都没必要理,何必给自己添堵呢?只要你和你老公认定了对方就行了,现在多少光棍?老婆都娶不上的
可能是百元价格出头最好听的圈铁HiFi耳机,BGVP鳞pro评测前言本次评测的是BGVP的新品,一圈一铁混合发声单元系统的鳞pro耳机。如果您预算不高,只有几百块钱,又渴望这个预算能买到一款耳机,达到三频均衡通透,解析量丰富,人声不会直白薄冷无加克波加盟利物浦!荷兰大将再入红军,六大前锋争先恐后!官方消息确认荷兰球员加克波即将加盟利物浦!这位23岁的小将此前在PSV埃因霍温效力,而本届世界杯上他也是踢出了身价,个人打进3粒进球,成为荷兰队的头号射手,让自己在世界杯的舞台上一80多年过去了,当年红军长征时走过的吃人草地,如今怎么样了?过草地难,难于上青天!,如今长征已经过去八十多年,当初让战士们叫难的草地如今怎么样了?这片草地名为松潘草原,位于四川境内,是连接青藏高原的重要通道。除了海拔高外,它的气候也十分寒冷蚂蚁18周年的叙事变迁什么是那条不变的隐线?深响原创作者刘亚澜2004年12月,冯小刚执导的天下无贼成为贺岁档爆款。尽管对电影啼笑皆非的剧情仍记忆犹新,但我们已经很难想象当时移动互联网尚未发展,在那个没有外卖没有短视频没有网绯红色的霞光下天鹅成群,翩翩起舞,唯美又浪漫说到天鹅,大家一定都知道,可能大部分人都没看见过,但是大都听说过,对此应该并不陌生。天鹅,属游禽,是鸭科中个体最大的类群,国家二级保护动物。天鹅一般栖息地多在湖泊和沼泽地带。在我国延安市的区划变动,陕西省的重要城市,13个区县是怎么来的?在之前的文章中给大家说了,很多城市的区划变迁沿革,因为我国的历史非常悠久,在中华文明上下五千年的历史中,我国历经了很多的政权才形成了现如今的统一,而且现如今我国的疆域版图非常的大,甘岔河之韵镇安县集雨面积100平方公里以上的河流13条,2016年起我陆续发了9条,意犹未尽,今天再和大家聊聊甘岔河。甘岔河源头,2009年10月甘岔河属于旬河的支流,发源于镇安县木王镇甘岔女明星跨年晚会太拼了!杨幂穿当季皮草,流量爱豆首饰过百万终于迎来跨年舞台啦!网友不仅欣赏到了精彩的歌舞秀,还能看到当红明星的舞台展示。为了呈现出最佳状态,这些明星们全力调动优质资源,以显示出个人的咖位和影响力,然而实际效果却是各有不同。要相信自己有些人,很在乎他人的评论。我觉得,你这个人不会幸福。幸福来自于,你自己的自信和你自己感到的满足。不是,叫他人看的。是不是你在享受。理想可以无限,你得把它实現,不能瞎想空喊。去定什么新的一年,愿一切都好岁月如梭,四季更替。旧年如一阵风,从我眼前轻轻掠过。一眨眼,哭过笑过累过闲过的时光,顿时变成了挂在墙上的风景,清晰而遥远,只留下浅浅的痕迹。一眨眼,旧的一年过去了,新的一年又来了。跨年寄语大疫经年,民间疾苦,俯瞰苍生,长太息以掩涕兮,哀民生之多艰。然而生在红旗下,长在春风里,在这远胜尧舜的新时代,不论是天灾还是人祸,孤勇者年复一年着伤茧为铠,砥砺奋进,推动着历史的巨