jvm调优从哪几个方面 一般的Java项目需要JVM调优吗?注意哪些?
一般的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项目内存占用过高而你的服务器内存过低时。
Net Core已经开源好几年了, 为什么不像JVM那样很多人研究和调优其GC算法?
我们已经上线了好几个.net core的项目,基本上都是docker .net core 2/3。说实话,
.net core的GC非常的优秀,基本上不需要像做Java时候,还要做很多的优化。因此没有多少人研究很正常。换句话,如果一个GC还要做很多优化,这肯定不是好的一个GC。当然平时编程的时候,常用的非托管的对象处理等等还是要必须掌握的。
为什么程序员不去《非你莫属》求职?
首先,非你莫属是一个综艺节目。他更多的是娱乐性。如果程序员去面试,问了一大推技术问题,就拿java来说,jvm性能调优,让面试的程序猿巴拉巴拉讲一大堆,可以明见的是,气氛很尴尬,因为大家都不明了。
其次,就是一个比较敏感的了。薪资!北上广深等特大城市,程序猿的薪资还是蛮高的。然后大家看到非你莫属中,绝大部分给的薪资在3k-10k之间,相对而言,这个薪资水平只是程序猿的初级水平。
最后,程序猿嘛,能动手绝不动嘴了,哈哈。
jvm调优从哪几个方面 jvm调优面试题答案 面试谈jvm原理
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。