教你怎么通过IDEA设置堆内存空间

编写两个可以导致线程阻塞的类并配置堆内存参数

首先需要注意的点:必须要是线程阻塞的类,在jvisualvm.exe程序里面才能够加载这个类的具体信息,jvisualvm.exe后面会提到。

编写两个类,类的main方法,代表两个线程,类具体代码如下图:

HeapDemo.java类的代码如下图:

HeapDemo3.java类的代码如下图:

然后给这两个类配置堆内存空间,点击Run->Edit Configurations,会跳出来一个弹窗,如下图:

配置好HeapDemo3类的堆内存后,再去配置HeapDemo类的堆内存,如下图:

其中-Xms参数和-Xmx参数都是设置堆内存大小的参数:

-Xms:JVM初始时,最小分配的堆内存的大小

-Xmx:JVM初始化时,最大分配的堆内存的大小

启动类

配置好堆内存参数之后,启动这两个类,这两个类因为线程阻塞,所以会一直处于运行状态,这样才能够在jvisualvm.exe应用程序中加载这两个类的信息,这两个类启动成功之后,如下图:

在jvisualvm.exe中查看堆内存分配情况

成功启动类中的main方法之后,就可以在jvisualvm.exe应用程序中查看堆内存的分配情况了,那么jvisualvm.exe应用程序的位置在哪呢?jvisualvm.exe程序的位置在jdk的bin目录下,如下图:

然后打开jvisualvm.exe程序,如下图:

然后点击Visual GC,如下图:

注意:刚进入jvisualvm.exe这个应用程序的时候,可能找不到Visual GC这个选项,需要我们安装插件,安装插件的过程如下图:

到此这篇关于教你怎么通过IDEA设置堆内存空间的文章就介绍到这了,更多相关通过IDEA设置堆内存空间内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • idea插件篇之java内存分析工具(JProfiler)的使用

    前言 在运行java的时候有时候想测试云运行时占用内存情况,这时候就需要使用测试工具查看了.在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在idea中也有这么一个插件,就是JProfilerl. 下载安装 打开idea,进入设置界面 安装之后重启即可. 安装成功后查看情况. 这是什么情况呢,这是这个插件启动需要依赖一个可执行的文件,就是源生的JAVA PROFILER 去官网下载 https://www.ej-technologies.

  • 详解IDEA中便捷内存数据库H2的最简使用方式

    在IDEA中做练习或做demo时,有时候需要使用到数据库,但如果自己机子上本来没有安装数据库(全新安装太麻烦或资源有限),也没有可用的远程数据库时,我们可以直接在IDEA上使用便捷式的内存数据库H2,关于H2更多知识就自己去找一下资料了,接下来主要讲一下如何在IDEA下的SpringBoot项目中把它用起来! 首先在IDEA中新建一个空的Maven项目,编辑项目pom.xml文件,增加SpringBoot和最基础的数据访问相关jar包依赖: <?xml version="1.0"

  • IntelliJ IDEA修改内存大小,使得idea运行更流畅

    idea有个配置文件,可以设置内存大小的,就跟咱的jvm的内存里面的堆大小,栈大小等等,可以设置的,而且设置了之后,你这个的性能就会得到提升.具体看下面怎么修改. 先说所要修改的文件 idea.vmoptions 的位置,这个不同的平台,估计名称可能有些差别.mac的如下图 具体怎么找到这个地方的,刚刚使用mac的估计不会,老手就会啦, option + cmd + P    隐藏或显示"访达"窗口中的路径栏 这个就是显示我上图的地步的那个路径,然后你就可以像Windows那样点点点到

  • IDEA内存调试插件(好用)

    JetBrains JVM Debugger Memory View plugin 在我最近的研发活动期间寻找新的工具,以提高我的开发经验,使Android Studio的生活更轻松,我发现一个有用的插件,我从来没有听说过. 这就是为什么,我决定写这个强大的工具,它如何帮助我与内存调试我的应用程序. What is the plugin about? 根据 plugin page : 此插件扩展了内置的JVM调试器,具有在调试会话期间观察JVM堆中的对象的功能. 内存视图按照类名称分组来显示 堆

  • IDEA设置JVM可分配内存大小和其他参数的教程

    有时我们会遇到 java.lang.OutOfMemoryError 的问题,可能会需要设置jvm运行参数 作用 -Dproperty=Value 该参数通常用于设置系统级全局变量值,如配置文件路径,保证该属性在程序中任何地方都可访问.当然,也可以通过在程序中使用System.setProperty进行设置. 注意: 1.如果-Dproperty=value的value中包含空格,可以将value使用引号引起来.例如:-Dmyname="hello world". 2.如果配置了-Dp

  • IDEA 设置显示内存的使用情况和内存回收的方法

    在上篇文章给大家介绍了IntelliJ IDEA设置显示内存指示器和设置内存大小的方法,感兴趣的朋友可以点击阅读,今天给大家分享IDEA 设置显示内存的使用情况和内存回收的方法,一起看看吧. IDEA设置内存的使用情况 操作见图 File-->settings--> IDEA右下角就出现了内存的使用情况小图 点击内存使用情况,可以回收部分内存. . 总结 到此这篇关于IDEA 设置显示内存的使用情况和内存回收的方法的文章就介绍到这了,更多相关idea 设置显示内存内容请搜索我们以前的文章或继续

  • windows java.exe内存暴涨解决、idea跑java\ tomcat内存无限增长

    最近突然遇到个问题:用 idea 跑 Tomcat 服务,不到30分钟 内存就吃完了.用任务管理器查看,发现 java.exe占了10G内存!! 查了各种方法 一. idea Tomcat 配置 没用!!! 二.idea idea64.exe.vmoptions 安装目录下的 bin 下的 idea64.exe.vmoptions 配置,还是 C:\Users\Administrator\.IntelliJIdea2019.1\config 下的 idea64.exe.vmoptions 配置

  • IntelliJ IDEA卡死,如何优化内存

    本文作者在和同事的一次讨论中发现,对 IntelliJ IDEA 内存采用不同的设置方案,会对 IDE 的速度和响应能力产生不同的影响. Don't be a Scrooge and give your IDE some more memory 不要做守财奴,给IDE多留点内存吧. 昨天,大家就是否自定义 IntelliJ IDEA 的内存设置进行了讨论,有些人选择默认设置,有些人会对默认的设置进行简单的变更,还有一些开发者会基于他们的需求进行全面复杂的设置.笔者目前的工作是处理几个微服务项目和

  • IntelliJ IDEA设置显示内存指示器和设置内存大小的方法

    一.设置显示内存指示器 idea默认情况下,是不显示当前内存使用情况的,可以通过设置让其显示,方法如下: 打开Preferences-->Appearance & Behavior-->Appearance,右侧勾选Window Options下面的Show memory indicator即可.如下图: [外链图片转存失败(img-uHIFk4f0-1568595892191)(images/04_01.png)] 设置好之后,在idea右下角会出现展示内存信息指示器,显示当前使用的

  • 教你怎么通过IDEA设置堆内存空间

    编写两个可以导致线程阻塞的类并配置堆内存参数 首先需要注意的点:必须要是线程阻塞的类,在jvisualvm.exe程序里面才能够加载这个类的具体信息,jvisualvm.exe后面会提到. 编写两个类,类的main方法,代表两个线程,类具体代码如下图: HeapDemo.java类的代码如下图: HeapDemo3.java类的代码如下图: 然后给这两个类配置堆内存空间,点击Run->Edit Configurations,会跳出来一个弹窗,如下图: 配置好HeapDemo3类的堆内存后,再去配

  • Java堆内存又溢出了!教你一招必杀技(推荐)

    JAVA堆内存管理是影响性能主要因素之一. 堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的. 先看下JAVA堆内存是如何划分的,如图: 1.JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation).老年代(Old Generation),非堆内存就一个永久代(Permanent Generation). 2.年轻代又分为Eden和Survivor区.Survivor区由FromSpace和ToSpace组成.Eden

  • 基于Java堆内存的10个要点的总结分析

    Java堆内存的10个要点 .javaoutofmemoryerrorgenerationjvmprofiler编程当我开始学习Java编程时,我不知道什么是堆内存或堆空间,我甚至不知道当对象创建时,它们被放在了哪里.当我开始正式写一些程序后,我会经常遇到java.lang.outOfMemoryError的报错,之后我才开始关注什么是堆内存或者说堆空间(heap space).对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学

  • 一文教会你使用jmap和MAT进行堆内存溢出分析

    jmap:Java内存映像工具 jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件).另外,还有几种方式获取dump文件:使用JVM参数选项-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX:HeapDumpPath=path 设置dump文件路径(有时候dump文件比较大的时候可能无法自动导出,这时候就需要使用jmap -dump手动导出了):通过-X

  • 详解JavaScript的内存空间、赋值和深浅拷贝

    JavaScript的内存空间 在JavaScript中,每一个数据都需要一个内存空间.内存空间分为两种,栈内存(stack)与堆内存(heap) 栈是系统自动分配的内存空间,由系统自动释放,堆则是动态分配的内存,大小不定不会自动释放. 基础数据类型 JavaScript中的基础数据类型,这些值都有固定的大小,保存在栈内存中,由系统自动分配存储空间在栈内存空间的值,我们可以直接进行操作,因此基础数据类型都是按照值访问 在栈内存中的数据发生复制的行为时,系统会自动为新变量开辟一个新的内存空间,当复

  • 详解JS内存空间

    概述 变量对象与堆内存 var a = 20; var b = 'abc'; var c = true; var d = { m: 20 } 在很长一段时间里认为内存空间的概念在JS的学习中并不是那么重要.可是后我当我回过头来重新整理JS基础时,发现由于对它们的模糊认知,导致了很多东西我都理解得并不明白.比如最基本的引用数据类型和引用传递到底是怎么回事儿?比如浅复制与深复制有什么不同?还有闭包,原型等等. 因此后来我才渐渐明白,想要对JS的理解更加深刻,就必须对内存空间有一个清晰的认知. 一.栈

  • 教你用MAT工具分析Java堆内存泄漏问题的解决方法

    一.MAT概述与安装 MAT,全称Memory Analysis Tools,是一款分析Java堆内存的工具,可以快速定位到堆内泄漏问题.该工具提供了两种使用方式,一种是插件版,可以安装到Eclipse使用,另一种是独立版,可以直接解压使用. 我把独立版MAT安装包放到了网盘上,方便直接下载 链接: https://pan.baidu.com/s/1DVHlHuSfi_4TVl2ei5YuLA 提取码: 42qt 独立版解压后,其内部文件是这样的-- 这里有一个MemoryAnalyzer.in

  • Java 堆内存与栈内存详细介绍

     Java 中的堆和栈 Java把内存划分成两种:一种是栈内存,一种是堆内存. ​ 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用. 堆内存用于存放由new创建的对象和数组.在堆中分配的内存,由java虚拟机自动垃圾回收器来管理.在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取

  • JVM中堆内存和栈内存的区别

    Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用. 堆内存用于存放由new创建的对象和数组.在堆中分配的内存,由java虚拟机自动垃圾回收器来管理.在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中

  • 详解Java的堆内存与栈内存的存储机制

    堆与内存优化     今天测了一个项目的数据自动整理功能,对数据库中几万条记录及图片进行整理操作,运行接近到最后,爆出了java.lang.outOfMemoryError,java heap space方面的错误,以前写程序很少遇到这种内存上的错误,因为java有垃圾回收器机制,就一直没太关注.今天上网找了点资料,在此基础上做了个整理.  一.堆和栈 堆-用new建立,垃圾回收器负责回收 1.程序开始运行时,JVM从OS获取一些内存,部分是堆内存.堆内存通常在存储地址的底层,向上排列. 2.堆

随机推荐