1. 数据库驱动包 必须要和数据库服务器端驱动包一致。(可能性能问题)
2. 调整JVM参数以提高性能
四种常用手段
a. 调整内存大小
JVM两种内存:栈内存(Stack)和堆内存(Heap)。栈内存特点:空间比较小,速度快,用来存储对象的引用及过程中的基本类型;而堆内存特点是内存空间比较大,速度慢,一般对象都会放在这里生成、使用和消亡。
栈内存是线程开辟,线程结束,栈内存有JVM回收,因此它的大小一般不会对性能有太大影响,但是它会影响系统的稳定性,在超过栈内存的容量时,系统会报StackOverflowError错误。可以通过“java -Xss <size>”设置栈内存的大小来调整。
堆内存的调整不能太随意,太小,GC操作太频繁,轻则导致系统性能急剧下降,重则导致系统根本无法使用;太大,浪费,系统不稳定。
b. 调整堆内存中各种分区的比例
JVM堆内存包括三部分:新生内存(Young Generation Space)、养老区(Tenuregeneration space)、永久存储区(Permanent Space),其中新生成的对象都在新生去,它又分为伊甸区(Eden Space)、幸存0区(Survivor 0 Space)和幸存1区(Survivor 1 Space),当在程序中使用了new关键字时,首先在伊甸区生成该对象,如果伊甸区满了,则用垃圾回收器进行回收,然后把剩余的对象移动到幸存区(0区或者1区),可如果幸存区也满了,垃圾回收器在次回收,然后把剩余的对象移动到养老区,那么养老去也满了?此时就触动Full GC(此操作非常危险,当操作时,JVM会停止所有的执行,所有系统资源都会让位给垃圾回收器),会对所有的对象过滤一遍,检查是否有可以回收的对象,如果还没有的话就抛出OutOfMemoryError错误。
可以参考 《JVM Specification》
一般情况下,设置新生区和养老区的比例为1:3. 设置不合理会导致系统不稳定。
如:
java -XX:NewSize = 32m -XX:MaxNewSize=640m -XX:maxPermSize = 1280m -XX:NewRatio = 5
解释:指定新生代初始化32MB,最大不超过640mb,养老区最大不超过1280mb,新生区和养老区的比例为1:5.
c. 更改GC的垃圾回收策略
java程序最大的障碍就是垃圾回收,我们不知道它何时会发生,也不知道它会执行多长时间,但是我们可以想办法改变它对系统的影响,比如启动并行垃圾回收、规定并行回收的线程数量,命令格式如下:
java -XX:+UserParallelGC -XX:ParallelGCThreads = 20
同时还可以修改:UseSerialGC(启动串行GC,默认值),ScavengeBeforeFullGC(新生代GC优于FullGC执行),UseConcMarkSweepGC(对老生代采用并发标记交换算法进行GC)
这些都需要在系统中逐步调试。
d. 更好JVM
三种常见 jvm: Java HotSpot VM,Oracle JRockit JVM , IBM JVM。若上述调整作用都不大可考虑调整JVM.
分享到:
相关推荐
阿里巴巴Java性能调优实战(2021华山版) 本资源摘要信息来自阿里巴巴Java性能调优实战(2021华山版),旨在帮助Java开发者掌握性能调优的实战经验和技术。 性能调优的重要性 性能调优是软件开发中一个非常重要的...
阿里巴巴Java性能调优实战
《阿里+Java+开发手册、阿里巴巴Java性能调优实战》是两本专注于Java开发和性能优化的专业书籍,分别以嵩山版和华山版的形式呈现,由阿里巴巴集团编写。这两本书籍结合了阿里巴巴在实际业务场景中的丰富经验,旨在...
阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在...
"阿里巴巴java性能调优实战手册" 本手册旨在为Java开发者提供一份实践性的性能调优指南,帮助他们解决在实际项目中遇到的性能问题。作者通过自己的经验和实践,总结了Java性能调优的重要性和必要性,并分享了自己的...
78-Java性能调优实战.zip78-Java性能调优实战.zip78-Java性能调优实战.zip78-Java性能调优实战.zip78-Java性能调优实战.zip78-Java性能调优实战.zip78-Java性能调优实战.zip78-Java性能调优实战.zip78-Java性能调优...
Java性能调优 6步实现项目性能全面升级+面试高频性能问题讲解视频教程分享,性能优化的N种企业级解决方案,囊括了【数据库优化】、【Tomcat优化】、【JVM优化】、【垃圾回收】、【Netty优化】、【Nginx优化】、...
阿里巴巴Java性能调优实战(2021华山版) 本资源提供了一份阿里巴巴Java性能调优实战指南,旨在帮助Java开发者提高系统性能。该指南共分七大模块,每个模块都涵盖了Java应用服务的不同方面的性能优化。 第一个模块...
这份“Java性能调优大全”提供了全面的指南,包括VisualVM的使用、JVM的性能优化、OMM(可能是指Oracle Management Monitor)的场景、jstat工具的详细解析以及性能分析工具的比较和内存溢出问题的解决方案。...
### Java性能调优知识点概述 #### 一、高性能Java代码编写原则 - **算法与数据结构**:选择合适的数据结构可以极大地提升程序运行效率。例如,对于查找操作频繁的场景,哈希表(如`HashMap`)比链表或数组更高效。...
Java 性能调优 Java 性能调优
以下是一些常用的Java性能调优命令及其用法和相关知识点。 1. jps命令用于列出所有的JVM实例。通过该命令,开发者可以快速查看本机上所有Java应用程序的进程ID。例如,使用`jps`可以列出本机所有的JVM实例。 2. ...
### Java性能调优概述 #### 一、性能优化的重要性与基本概念 在现代软件开发中,性能优化是一项至关重要的任务。对于Java开发者来说,优化不仅仅意味着让程序运行更快,还包括了减少内存消耗、提高响应速度等多个...
本专题“47-Java性能调优实战”聚焦于电商系统的分布式事务处理,旨在帮助开发者掌握如何有效地解决内存持续上升的问题以及优化网络通信和NIO实现。 首先,内存持续上升是Java应用中常见的性能问题,可能导致系统...
在Java性能调优领域,有以下几个核心知识点: 1. **JVM调优**:Java虚拟机(JVM)是Java程序运行的基础,其性能直接影响应用的响应速度和稳定性。书中会深入讲解JVM内存模型,包括堆内存、栈内存、方法区等,以及...
【Java性能调优指南】 在Java开发中,性能调优是一项关键任务,它涉及到程序运行效率、资源利用和系统稳定性。本指南主要关注Java虚拟机(JVM)调优、编码最佳实践以及微基准测试的重要性。 **基本规则** 1. **...
Java性能调优工具简介,包括Linux系统层面的调优工具介绍和java层面调优的工具介绍
Java性能调优工具及方法介绍 可配合工具用于内存泄漏问题快速排查
java 性能调优, 来自于内部分享。 java 性能调优, 来自于内部分享。
温馨提示:虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)