我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java虚拟机怎么利用JVM进行优化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java虚拟机怎么利用JVM进行优化

本篇文章为大家展示了Java虚拟机怎么利用JVM进行优化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

前言

Java虚拟机是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。Java虚拟机是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的,通过Java虚拟机,您只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。

最近在看JVM群里有人发了一个GC情况,让人帮忙看优化的,于是我也凑热闹发了出来想让群里的大神们指导优化一下,以下是优化过程记录.

一开始我贴了下面的两张图

jstat看GC记录

jstat -gcutil pid 1000 20

Java虚拟机怎么利用JVM进行优化

jcmd看VM参数(第一次使用这个命令)

jcmd pid VM.flags

Java虚拟机怎么利用JVM进行优化

可以看到YGC了8W多次,FGC有1100+,相比较另一个发出来求教的,我这个更糟糕,他的是运行了3天左右 FGC370次

然后飞神让我看下运行时间

ps -p pid -o etime

Java虚拟机怎么利用JVM进行优化

我的也是跑了3天左右,感觉优化空间非常的大

又让我拉了JVM配置

jinfo -flags pid(没权限,没执行成功)

ps aux | grep pid

Java虚拟机怎么利用JVM进行优化

发现我的JVM完全没做过优化,据我自己的印象,就改过PermSize,因为这个OOM过,所以调大了一点。

axPermSize=256m -server -Xss256k -XX:PermSize=128M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/log/gclog/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/log/jvmdump/jvm.bin -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:+TieredCompilation -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC

并嘱咐了一句loggc和dumpPath提前mkdir

因为已经是周五晚上了,我没有权限直接修改这个配置,所以准备下周一再配上去看效果。

万万没想到,回家路上,笨神出来说话了,要我看下存活实例

jmap -histo:live pid

Java虚拟机怎么利用JVM进行优化

由于没有开启GC日志,于是笨神让我开着jstat(飞神提到jstat -gccause pid可以gc情况),然后在另一个窗口执行jmap -histo:live

刚开始没明白,后来才知道原来这个命令可以触发FGC

Java虚拟机怎么利用JVM进行优化

可以看到FGC了以后Old区从90%降到了79%,FGC效果很差,说明活对象太多了。

回过头去看jmap实例,发现AtomicInteger这个类对象特别的多,竟然有300多万个实例,已经是top2了。

翻看代码没有发现有使用这个类的地方,初步怀疑是依赖的jar包使用的,笨神建议dump用MAT分析一下。

dump命令导出文件

jmap -dump:format=b,file=pid.dump pid

上述内容就是Java虚拟机怎么利用JVM进行优化,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java虚拟机怎么利用JVM进行优化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java虚拟机怎么利用JVM进行优化

本篇文章为大家展示了Java虚拟机怎么利用JVM进行优化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言Java虚拟机是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最
2023-05-31

如何进行JVM虚拟机中Java的编译期优化与运行期优化

这篇文章将为大家详细讲解有关如何进行JVM虚拟机中Java的编译期优化与运行期优化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java编译期优化java语言的编译期其实是一段不确定的操作过
2023-06-02

JAVA虚拟机(JVM)详细介绍(七)——JVM优化

还以这个图为例,从.java到.class是编译过程,从.class到机器码是解释过程。下面对其进行分别优化。在优化过程中,对编译阶段的优化主要是对前端编译器的优化,在运行阶段的优化,主要是对即时编译器的优化。编译器优化编译过程以上为javac的编译过程图,以
JAVA虚拟机(JVM)详细介绍(七)——JVM优化
2017-09-20

理解Java虚拟机(JVM):优化代码执行效率的内部机制

本文将深入理解JVM的内部机制,以及如何通过优化代码执行提高程序的性能。
虚拟机程序2024-11-30

使用宝塔面板进行Java虚拟机的优化配置

Java虚拟机优化配置简介:优化JVM配置可提升性能和稳定性。宝塔面板可简化配置,满足应用程序需求。优化步骤:调整内存分配:Xms和Xmx选择垃圾收集器:G1GC或ParallelGC配置堆外内存:-XX:MaxDirectMemorySize启用编译优化:-XX:+TieredCompilation启用性能监控:-XX:+PrintGCDetails应用其他优化:-Xverify:none等示例配置:-Xms2048m-Xmx4096m-XX:+G1GC-XX:MaxDirectMemorySize=5
使用宝塔面板进行Java虚拟机的优化配置
2024-04-12

使用宝塔面板进行Java虚拟机的优化配置

要使用宝塔面板进行Java虚拟机(JVM)的优化配置,可以按照以下步骤进行操作:1. 登录到宝塔面板,进入网站管理页面。2. 在网站列表中找到需要配置JVM的网站,点击进入网站管理页面。3. 在网站管理页面的左侧导航栏中找到“配置文件”选项
2023-10-09

Java虚拟机栈jvm栈有什么用

小编给大家分享一下Java虚拟机栈jvm栈有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 定义栈:线程运行时需要的内存空间,一个栈存在多个栈帧。栈具有先入后出,后入先出的特点。栈帧:每个方法运行时需要的内存(局
2023-06-25

虚拟主机怎么运行java

虚拟主机如何运行Java虚拟主机通过将服务器分割成虚拟专用服务器(VPS)来运行Java应用程序。每个VPS在Java虚拟机(JVM)中运行应用程序,负责将Java字节码翻译成机器代码。部署过程涉及选择提供商、创建VPS、安装Java、上传应用程序、配置服务器并启动应用程序。这种方法提供了隔离、可扩展性、成本效益和易于管理的优点。然而,它也存在资源限制、可靠性问题、安全威胁和自定义限制等局限性。适用于Java应用程序的虚拟主机提供商包括Bluehost、HostGator和DreamHost。
虚拟主机怎么运行java
2024-04-09

虚拟主机怎么运行java

要在虚拟主机上运行Java,您需要确保虚拟主机上安装了Java运行时环境(JRE)或Java开发工具包(JDK)。然后按照以下步骤进行操作:1. 登录到您的虚拟主机控制面板或通过SSH远程连接到虚拟主机。2. 确保您的Java应用程序已编译
2023-08-31

Java虚拟机怎么用

这篇文章主要讲解了“Java虚拟机怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java虚拟机怎么用”吧!Java虚拟机Java虚拟机(JavaVirtualMachine)简称JVM
2023-06-17

Java虚拟机中JVM内存结构是怎么样的

这篇文章给大家分享的是有关Java虚拟机中JVM内存结构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、JVM启动流程:JVM启动时,是由java命令/javaw命令来启动的。二、JVM基本结构:JV
2023-06-02

Perl中怎么进行容器化和虚拟化

在Perl中进行容器化和虚拟化通常会使用相关的模块或工具来实现。以下是一些常用的Perl模块和工具:Docker-Client:Docker是一个流行的容器化平台,Docker-Client模块可以帮助Perl程序员与Docker进行交互,
Perl中怎么进行容器化和虚拟化
2024-03-05

怎么利用优化JS代码来进行网站优化

怎么利用优化JS代码来进行网站优化,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。现在优化JS代码也是我们在进行网站优化时经常使用的手段,js在数据传输,用户交互以及增进页面
2023-06-07

Java虚拟机OOM怎么用

本文小编为大家详细介绍“Java虚拟机OOM怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java虚拟机OOM怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。通过代码模拟Java虚拟机规范中描述的各个
2023-06-02

西安虚拟主机租用怎么进行测速

西安虚拟主机租用进行测速的方法:1、使用Ping命令检查网络是否通畅或网络连接速度是多少;2、使用tracert命令检测从终端客户到服务器所在机房的跳数和响应时间;3、使用第三方测速工具测试网站访问速度的响应时间,可以作为网站访问速度的一个
2023-02-10

怎么在虚拟主机中运行java

怎么在虚拟主机中运行java?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发
2023-06-14

如何利用 Java 虚拟主机来搭建网站?(使用java虚拟主机怎么搭建网站)

在当今数字化的时代,搭建网站已经成为了许多企业和个人展示自身形象、提供服务的重要途径。而Java虚拟主机作为一种常用的服务器环境,为搭建网站提供了强大的支持。下面,我们将详细介绍如何使用Java虚拟主机来搭建网站。一、准备工作选择合适的Ja
如何利用 Java 虚拟主机来搭建网站?(使用java虚拟主机怎么搭建网站)

java虚拟主机怎么使用

使用Java虚拟主机(JVM)可以让您在共享服务器上运行Java应用程序。以下是使用Java虚拟主机的步骤:1. 选择一个可靠的虚拟主机提供商,并注册一个账户。您可能需要支付一定的费用才能使用Java虚拟主机服务。2. 登录您的虚拟主机控制
2023-05-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录