我的电脑配置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. IntelliJ IDEA自动导入包去除星号(import xxx.*)

    打开设置>Editor>Code Style>Java>Scheme Default>Imports ① 将Class count to use import with ...

  2. day04 迭代器&生成器&装饰器

    目录   1.迭代器 2.生成器 3.推导式 4.匿名函数 5.内置函数 6.递归 7.闭包 8.装饰器 一.迭代器 特点: 1. 省内存 2. 只能向前. 不能反复 3. 惰性机制 让不同的数据类型 ...

  3. 使用excel 数据透视表画图

    ①    打开Excel,选中需要制表的数据,点击“插入”->“数据透视表”          ②    出现下列对话框,点击“确定”          ③    再新的“sheet”表内对“数 ...

  4. 关于使用colorbox加载html页面的一些问题

    ColorBox是一个基于jQuery 1.3 的轻量级,自定义灯箱插件,功能非常强大,支持图片,图片组,ajax,inline和iframed内容,灯箱样式完全由用户控制,可自定义CSS样 式,不需 ...

  5. 浏览器端使用javascript调用腾讯翻译api

    最近在学习的小玩意,发现腾讯的文档十分坑爹,里面有很多错误的指示. 不过腾讯的机器翻译还是很牛的,我觉得翻译水准比谷歌好很多. 腾讯的机器翻译貌似在试用阶段,不收费,用QQ或微信登录即可申请使用. 首 ...

  6. Python3 标准库学习

    python3.5.6 官方文档  https://docs.python.org/3.5/library/index.html 1.介绍 2.内置函数 3.内置常量 3.1常数添加的 site模块 ...

  7. MySql 的SQL执行计划查看,判断是否走索引

    在select窗口中,执行以下语句: set profiling =1; -- 打开profile分析工具show variables like '%profil%'; -- 查看是否生效show p ...

  8. k8s nodeport下访问请求未被分发到所有node的排错(转)

    原文 https://www.myf5.net/post/2343.htm 现象: 从内部某个pod的容器里直接访问service的cluster地址,请求可以被正常转发到各个node上的pod里 但 ...

  9. [UE4]瞬移对象

    一.首先把Predict Projectile Path By TraceChannel的Draw Debug Type改成none,不显示射线,改成该选项并不会影响正常使用. 二.避免瞬移穿透底板 ...

  10. Centos7下GlusterFS 分布式文件系统环境搭建

    Centos7下 GlusterFS 环境搭建准备工作glusterfs-3.6.9.tar.gzuserspace-rcu-master.zip三台服务器:192.168.133.53.192.16 ...