我的电脑配置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. c# 获取 bios 序列号

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.M ...

  2. [随笔][胡思乱想][唠叨][web server]

    nginx是一个webserver,最基本的功能是发送静态的文件.类似于apache2的webserver,主要的功能就是响应请求,做出响应. 所说的服务器是安装了服务器软件的物理机,专用的服务器或者 ...

  3. from组件

    目录 一.生成页面可用的 HTML标签 二.对用户提交的数据进行校验 三. form 综合示例: 四. modelform(自动根据字段生成表单) 五.modelformset 一.生成页面可用的 H ...

  4. Vue 错误记录:Cannot read property 'beforeRouteEnter' of undefined

    点击某路由链接,页面提示: Cannot read property 'beforeRouteEnter' of undefined 查看代码并无手写beforeRouterEnter设置, 把页面内 ...

  5. python-简单的登陆接口

    # 工作需求2 编写登陆接口(1输入用户名密码 2认证成功后显示欢迎信息 3输错三次后锁定)# 实现思路 1.用户名和密码是否正确,全部正确可正常登陆 输错三次无法登陆 2.是否已经注册 未注册 无法 ...

  6. hg (Mercurial)multiple heads (hg 多头)、撤销 commit,并保留修改

    有时候 commit 后才意识到还未 pull,这个时候会有如下提示: wlan-0-182:mobile-v2 lixiumei$ hg pull -upulling from ssh://hg@b ...

  7. Day14全局变量与局部变量

    列表的所有方法都可以用,如remove  clear 为了避免容易出错,全局变量名用大写,局部变量名用小写  nonlocal指上一级的name

  8. 总结,为什么要重写hashset的hashcode()和equals()?

    看了非常多博客,怕自己忘记了,通俗易懂的总结如下 本人总结下: 重写前,比较地址,hashcode方法如果相等可能是同一个对象,所以再用equals再比内存地址 重写后,比较值,重写hashCode方 ...

  9. Spring Cloud Turbine微服务集群实时监控

    本文代码下载地址: https://gitlab.com/mySpringCloud/turbine SpringBoot版本:1.5.9.RELEASE (稳定版) SpringCloud版本:Ed ...

  10. rocketmq(三 java操作rocket API, rocketmq 幂等性)

    JAVA操作rocketmq: 1.导入rocketmq所需要的依赖: <dependency> <groupId>com.alibaba.rocketmq</group ...