我的电脑配置12G内存,64位,win10系统。

  首先,idea,是在idea中安装目录下的bin目录下面找到idea64.exe.vmoptions ,要是有位的同学注意找到idea32.exe.vmoptions的文件去编辑。

  更改文件,无非大多数情况下就是堆和栈的溢出或者编码格式问题。如果出现堆溢出(java.lang.OutOfMemoryError: Java heap space),可更改堆区的Xms还有Xmx的大小或者非堆区(持久化内存)的-XX:PermSize-XX:MaxPermSize的大小,具体大小得看你电脑得配置,还有你项目编译需要的内存。

  要是出现java.lang.StackOverflowError,这种栈溢出得话,就添加一下-Xss128k  ,修改一下栈的大小,这里的128看情况更改,也可以自己尝试其它参数。一般小的应用, 如果栈不是很深, 应该是128k够用的 大的应用建议使用256k。一般出现栈溢出的错误,一般都是递归的错误,才出现Stack满的情况,而无限循环一般不会占用更多的内存或者具体的Stack,只是占cpu而已。

-Xms1024m   //设置堆最小值为1G,表示java虚拟机堆区内存初始内存分配的大小
-Xmx2048m //设置堆最大值为2G,表示java虚拟机堆区内存可被分配的最大上限
-XX:ReservedCodeCacheSize=512m //设置缓存大小
-XX:+UseConcMarkSweepGC //并发标记清除(CMS)收集器
-XX:SoftRefLRUPolicyMSPerMB=50 //每兆堆空闲空间中SoftReference的存活时间
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true //设置网络编程获取IPv4 的地址
-XX:+HeapDumpOnOutOfMemoryError //当堆内存空间溢出时输出堆的内存快照。
-XX:-OmitStackTraceInFastThrow //强制要求JVM始终抛出含堆栈的异常
-Dfile.encoding=UTF-8 //设置编码格式

eclipse (eclipse更改vm参数在ecplise安装目录下找到eclipse.ini文件),更改参数。

-startup
plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.700.v20180518-1200
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs //这里开始VM参数
-Dosgi.requiredJavaVersion=1.8 //指定JDK1.8版本,有时候项目版本问题也可以更改这个参数
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC // 指定G1垃圾回收器,G1垃圾回收器适用于堆内存很大的情况,他将堆内存分割成不同的区域,并且并发的对其进行垃圾回收。
//G1也可以在回收内存之后对剩余的堆内存空间进行压缩。并发扫描标记垃圾回收器在STW情况下压缩内存。G1垃圾回收会优先选择第一块垃圾最多的区域
-XX:+UseStringDeduplication //删除重复的字符串,只保留一个char[]来优化堆内存
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8 //指定JDK1.8版本,有时候项目版本问题也可以更改这个参数
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms512m //分配最小堆512m
-Xmx2048m //分配最大堆2048m内存
--add-modules=ALL-SYSTEM
JVM按照其存储数据的内容将所需内存分配为堆区非堆区两个部分:
  • 堆区即为通过new的方式创建的对象(类实例)所占用的内存空间     (参数-Xms  -Xmx)
  • 非堆区即为代码、常量、外部访问(如文件访问流所占资源)等        (参数-XX:PermSize,-XX:MaxPermSize)

IDEA与eclipse:vm参数调优笔记的更多相关文章

  1. JVM参数调优:Eclipse启动实践

    本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java ...

  2. Java性能调优笔记

    Java性能调优笔记 调优步骤:衡量系统现状.设定调优目标.寻找性能瓶颈.性能调优.衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈).性能调优结束. 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多. ...

  3. JVM内存结构、参数调优和内存泄露分析

    1. JVM内存区域和参数配置 1.1 JVM内存结构 Java堆(Heap) Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都 ...

  4. JVM:参数调优

    JVM:参数调优 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 前言 查看 JVM 系统默认值:使用 jps 和 jinfo 进行查看 -Xms:初始堆空间 - ...

  5. Linux内核 TCP/IP、Socket参数调优

    Linux内核 TCP/IP.Socket参数调优 2014-06-06  Harrison....   阅 9611  转 165 转藏到我的图书馆   微信分享:   Doc1: /proc/sy ...

  6. 【转载】AutoML--超参数调优之Bayesian Optimization

    原文:Auto Machine Learning笔记 - Bayesian Optimization 优化器是机器学习中很重要的一个环节.当确定损失函数时,你需要一个优化器使损失函数的参数能够快速有效 ...

  7. 【Spark调优】Shuffle原理理解与参数调优

    [生产实践经验] 生产实践中的切身体会是:影响Spark性能的大BOSS就是shuffle,抓住并解决shuffle这个主要原因,事半功倍. [Shuffle原理学习笔记] 1.未经优化的HashSh ...

  8. linux 服务器安全加固和内核参数调优 nf_conntrack

    0.内部设置跳板机,服务器只能通过跳板机登录1.禁止ROOT用户远程登录和登录端口 禁止ROOT用户远程登录 .打开 /etc/ssh/sshd_config PermitRootLogin no . ...

  9. JVM 堆参数调优 (四)

    堆参数调优 1.堆的结构 JAVA7 堆逻辑上分为:新生区.养老区.永久区:实际上堆只有新生区.养老区: Minor GC:轻量的垃圾回收:   Major GC(Full GC):重量级垃圾回收. ...

随机推荐

  1. day-14带参装饰器、迭代器

    带参装饰器 通常,装饰器为被装饰的函数添加新功能,需要外界的参数  -- outer参数固定一个,就是func -- inner参数固定同被装饰的函数,也不能添加新参数 -- 可以借助函数的嵌套定义, ...

  2. windows知识点2

    最近在使用win10系统的过程中,无法获取dns报错,上不了网.经过一番折腾,最终在用下面的方法,解决了问题.第二步很关键.完成步一下步骤重启电脑应该就可以上网了.12第一步:使用 ipconfig ...

  3. NFC 大电池 高性价比手机

    NFC 大电池 高性价比手机三星 Galaxy A60元气版 黑瞳全视屏 3200万超广角拍照手机 骁龙675 6GB+64GB 丹宁黑 全网通4G 双卡双待 1499 https://item.jd ...

  4. C#利用for循环打印图形练习题

    (1) namespace ConsoleApp2 { class Program { static void Main(string[] args) { ; i < ; i++)//外层循环控 ...

  5. Javascript 使用postMessage对iframe跨域传值或通信

    实现目标:两个网站页面实现跨域相互通信 当前例子依赖于 jQuery 3.0 父页面代码:www.a.com/a.html <iframe id="myIframe" src ...

  6. 记录一次mongodb因网络问题导致shard节点异常

    现象: 机房反馈9点左右,机房交换机故障,导致网络出现问题 业务人员反馈某个接口超时 初查:通过业务日志查看分析发现,在连接mongo的某个collections时候,报错错误如下: 在写入数据的时候 ...

  7. 子线程更新UI界面的2种方法

    一.一般我们都会在子线程完成一些耗时的操作. 1.Android中消息机制: 2.知识点: Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队, ...

  8. Windows下安装MySQL8

    转自:https://blog.csdn.net/star_in_shy/article/details/82691330  感谢! 一.MySQL官网下载 (一)MySQL下载地址:https:// ...

  9. Oracle数据库ORA-01109 数据库未打开

    引致 https://blog.csdn.net/colinmok/article/details/39504879?locationNum=11&fps=1  感谢! 在plsql创建了2表 ...

  10. Java Web组件Servlet、Filter、Listener

    一.Servlet 类javax.servlet.http.HttpServlet; 1.是单例模式,一个web容器中只有一个实例.服务器调用它的service方法进行请求处理, service方法又 ...