2016 - 2024

感恩一路有你

jvm调优从哪几个方面 一般的Java项目需要JVM调优吗?注意哪些?

浏览量:1926 时间:2021-03-12 19:09:51 作者:admin

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

Java以其开源、高效、跨平台和良好的生态环境成为主流编程语言。即使是以前使用其他技术栈的公司,现在也在慢慢地向Java平台迁移。我相信很多Java学生在面试时都会被问到关于JVM调优的问题,但是他们似乎很少在日常工作中进行JVM调优。您想为一般Java项目进行JVM调优吗?

在我们讨论JVM调优之前,让我们先讨论一下JVM。什么是JVM?实际上,JVM是Java虚拟机的缩写。Java能够跨平台的原因实际上是基于JVM。

尽管JVM本身是一个计算机程序,但它也有自己的一套软件和硬件环境。

就像你买了一台新电脑。系统安装后,您可以正常使用计算机。但是很多用户需要自定义电脑,比如桌面背景。同样,JVM安装后,即使没有任何额外的设置,也可以正常工作,但在某些情况下,还需要对JVM进行调优,而调优的手段就是更改JVM参数。

JVM调优的目的是使用尽可能少的内存和CPU,使Java程序获得更高的吞吐量和更低的延迟。

2. JVM常用调优项

JVM最常用的调优是更改JVM的默认参数,例如:

最大堆大小:-Xmx

新生成大小:-XMN

不朽生成的最小值:-XX:permsize

不朽生成的最大值:-XX:maxpermsize

事实上,JVM的默认设置可以满足一般项目的需要。似乎只要您更改参数,JVM的调优就非常简单,但不是我,而是您认为的那么简单。

如果JVM调优不好,会影响整个项目的稳定性。在正常情况下,不建议调优JVM,除非Java项目内存太高,服务器内存太低。

为什么需要jvm调优?

JVM调优目标:使用较小的内存占用来实现更高的吞吐量或更低的延迟。

在上线前测试或运行程序的过程中,有时会出现一些JVM问题,比如CPU,负载过高,请求延迟,TPS降低,甚至内存泄漏(每次垃圾收集时间越来越长,垃圾收集频率越来越高,每次垃圾回收清理的垃圾数据越来越少),内存溢出导致系统崩溃,因此有必要对JVM进行调优,使程序在正常运行效率的前提下获得更高的用户体验和效率。

jvm调优和tomcat调优的区别?

JVM调优的主要目的是在程序执行过程中合理分配内存资源,并在程序执行后设置内存恢复机制。

Tomcat调优主要是设置最大并发线程数、初始化期间创建的线程数以及超过最大并发线程数后可以等待连接的请求数。

jvm调优参数?

-XMS initial heap size

-Xmx maximum heap size

-XMN young generation size(1.4或lattice)

-XX:newsize set young generation size(对于1.3/1.4)

-XX:maxnewsize young generation maximum(对于1.3/1.4)

-XX:permsize set perm Gen initial value

-XX:maxpermsize set perm Gen persistent generation最大值

-XSS每个线程的堆栈大小

-XX:threadstack size线程堆栈大小

-XX:newratio年轻一代(包括Eden和两个幸存区域)与老一代(不包括持久性生成)的比率

-XX:survivoratio Eden区域与幸存区域的比率

-XX:largepagesizeinbytes内存页大小不能设置太大,这将影响perm的大小

-XX:快速优化原始类型的usefastaccessormethods

-XX:禁用显式系统.gc()

-20:当前互联网领域正处于结构调整时期。从大的发展趋势来看,它正在从消费互联网向工业互联网转变。这个过程对Java程序员的影响主要集中在三个方面:一是技术升级的要求;二是行业经验的要求;三是创新的要求。

尽管Java语言是一种完整的场景开发语言,在生产环境中采用Java将大大降低开发风险,但仍有大量技术结构陈旧的Java程序员。比如很多Java程序员还不掌握大数据、云计算等开发技术,未来这些技术的应用场景还会不断增加,发布的机会也会越来越多。因此,对于Java程序员来说,如何及时升级技术是一个必须考虑的问题。

行业经验也将在Java程序员的开发中发挥关键作用,特别是在工业互联网阶段。掌握一定的行业经验可以显著提高Java程序员的岗位竞争力。目前,云计算技术正在从IAAs向PAAS和SaaS发展。未来云计算平台将在行业内垂直整合,这将明显降低软件开发的技术难度。此时,行业经验将成为程序员高效开发的关键因素。因此,Java程序员应该在工作中积累更多的行业经验。

最后,在大数据、云计算和物联网技术的推动下,程序员的创新能力将越来越受到重视。特别是在云计算技术的推动下,未来将有大量的应用级程序员升级为研发级程序员,研发级程序员的核心竞争力是创新能力。对于初级Java程序员来说,培养自己的创新能力,研究生是一个不错的选择。

jvm调优从哪几个方面 jvm常用调试工具 tomcat调优和jvm调优

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。