IDEA与eclipse:vm参数调优笔记
我的电脑配置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
- 堆区即为通过new的方式创建的对象(类实例)所占用的内存空间 (参数-Xms -Xmx)
- 非堆区即为代码、常量、外部访问(如文件访问流所占资源)等 (参数-XX:PermSize,-XX:MaxPermSize)
IDEA与eclipse:vm参数调优笔记的更多相关文章
- JVM参数调优:Eclipse启动实践
本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java ...
- Java性能调优笔记
Java性能调优笔记 调优步骤:衡量系统现状.设定调优目标.寻找性能瓶颈.性能调优.衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈).性能调优结束. 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多. ...
- JVM内存结构、参数调优和内存泄露分析
1. JVM内存区域和参数配置 1.1 JVM内存结构 Java堆(Heap) Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都 ...
- JVM:参数调优
JVM:参数调优 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 前言 查看 JVM 系统默认值:使用 jps 和 jinfo 进行查看 -Xms:初始堆空间 - ...
- Linux内核 TCP/IP、Socket参数调优
Linux内核 TCP/IP.Socket参数调优 2014-06-06 Harrison.... 阅 9611 转 165 转藏到我的图书馆 微信分享: Doc1: /proc/sy ...
- 【转载】AutoML--超参数调优之Bayesian Optimization
原文:Auto Machine Learning笔记 - Bayesian Optimization 优化器是机器学习中很重要的一个环节.当确定损失函数时,你需要一个优化器使损失函数的参数能够快速有效 ...
- 【Spark调优】Shuffle原理理解与参数调优
[生产实践经验] 生产实践中的切身体会是:影响Spark性能的大BOSS就是shuffle,抓住并解决shuffle这个主要原因,事半功倍. [Shuffle原理学习笔记] 1.未经优化的HashSh ...
- linux 服务器安全加固和内核参数调优 nf_conntrack
0.内部设置跳板机,服务器只能通过跳板机登录1.禁止ROOT用户远程登录和登录端口 禁止ROOT用户远程登录 .打开 /etc/ssh/sshd_config PermitRootLogin no . ...
- JVM 堆参数调优 (四)
堆参数调优 1.堆的结构 JAVA7 堆逻辑上分为:新生区.养老区.永久区:实际上堆只有新生区.养老区: Minor GC:轻量的垃圾回收: Major GC(Full GC):重量级垃圾回收. ...
随机推荐
- 自定义事件——Event和CustomEvent
之前在学习自定义事件时,在MDN的Event.initEvent()页面顶端有写:该特性已从Web标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性. 作 ...
- nginx ngx_http_image_filter_module 简单试用
nginx包含了一个ngx_http_image_filter_module 模块,我们可以方便的进行图片的缩略图,平时一些简单的功能 已经够用了 环境准备 为了简单使用docker-compose ...
- Vue2.5基础
1.1 创建第一个Vue实例 官方网站:https://cn.vuejs.org 学习 --> 安装 刚开始学习Vue,使用最简单的安装方式,直接用<script>引入 我们下载开发 ...
- 18.22 sprintf函数功能
函数功能:把格式化的数据写入某个字符串 函数原型:int sprintf( char *buffer, const char *format [, argument] … ); 返回值:字符串长度(s ...
- Unity 3D中不得不说的yield协程与消息传递
1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这 ...
- 【kubenetus】kubenetus运维
重启K8S服务 systemctl stop kubelet systemctl stop kube-apiserver systemctl stop kube-proxy systemctl sto ...
- Hadoop 管理工具HUE配置-初始配置
1 界面换成中文 默认是英文的,可以修改为中文 1.修改配置文件settings.pynano hue/desktop/core/src/desktop/settings.py LANGUAGE_CO ...
- 升级GCC以支持C++11
本文主要介绍在Linux系统下,如何升级GCC以支持C++11.目前来看GCC是对C++11支持程度最高最多的编译器,但需要GCC4.8及以上版本. 本文使用操作系统:Centos 6.4 Desk ...
- 解决Flask局域网内访问不了的问题
在服务器上使用http://127.0.0.1:5000可以访问,但是在局域网内通过服务器IP地址访问不了,解决办法为:设置Flask为任何地址均可以访问,post设置为‘0.0.0.0’, if _ ...
- 7.11 animals.c 程序
7.11 animals.c 程序 #include <stdio.h> #include <ctype.h> int main(void) { char ch; printf ...