[No000019A]IDEA 设置手册
[No000019A]idea设置手册.rar
IDEA 设置手册
plugin
String Manipulation,字符串转换
MybatisCodeHelperPro
使用说明
- 下载已破解的插件压缩包,一定注意校验 sha1sum!
- 在 IDEA 中本地安装插件.
- 激活方法:点击 IDEA 菜单 Tools-> MybatisCodeHelper->offlineActivation;
- 输入任意激活码:https://zhile.io/2019/04/23/mybatis-code-helper-pro-crack.html
jrebel
在 jrebel server 处,写上: http://139.199.89.239:1008/88414687-3b91-4286-89ba-2dc813b107ce 如果出现激活过期的情况,请重新生成 guid,替换原来的 guid 即可邮箱随便写,即可激活。
lombok
Plugin Preferences | Build, Execution, Deployment | Compiler | Annotation Processors
1<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
2<dependency>
3<groupId>org.projectlombok</groupId>
4<artifactId>lombok</artifactId>
5<version>1.18.6</version>
6<scope>provided</scope>
7</dependency>
or 不指定 版本号
1<dependency>
2<groupId>org.projectlombok</groupId>
3<artifactId>lombok</artifactId>
4<optional>true</optional>
5<scope>provided</scope>
6</dependency>
lgnore files and folesrs
.idea;.gitignore;.project;.classpath;.settings;.rebel-remote.xml.bak;.rebel.xml.bak;
代码管控
- svn,需要安装 command line tool 组件
- maven,部门私服配置见 setting 样例.xml;
- 如果使用外部包管理,建议参照 https://www.jianshu.com/p/4d5bb95b56c5 配置;
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
程序框架
- spring boot
- mybatis
- druid
- mybatis-generator
部署方式
- 打包部署成 war/tomcat 部署;
- 版本 9,配置文件改端口
- Oracle 驱动解压到
marven[repostitory]/com/oracle{同 ojdbc7}
下
useless 32file
- idea.exe.vmoptions
- IdeaWin32.dll
- jumplistbridge.dll
- runnerw.exe
- yjpagent.dll
- breakgen.dll
- fsnotifier.exe
- idea.exe
idea 配置调优
- 修改的原则:根据机器内存情况来判断;
- 建议 8G 以下或静态页面开发都不要修改;
- 大型、Java 、Android 项目,且内存大于 8G,建议进行修改
常修改下面 4 个参数
这里只做一个引子,最好的调整方式是根据 jconsole 工具进行观察后个性化调整。
-server
-Xms512m
-Xmx2048m
-XX:ReservedCodeCacheSize=512m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=80
-ea
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf
-Dkotlinx.coroutines.debug=off
-javaagent:jetbrainsCrack.jar
//-XX:MaxPermSize=350m,16G 内存的机器可尝试设置为-XX:MaxPermSize=500m//无此选项
设置 JVM 内存设置
设置 JVM 内存的四个参数:
- -Xmx
Java Heap 最大值,默认值为物理内存的 1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
- -Xms
ava Heap 初始值,Server 端 JVM 最好将-Xms 和-Xmx 设为相同值,开发测试机 JVM 可以保留默认值;
- -Xmn
Java Heap Young 区大小,不熟悉最好保留默认值;
- -Xss
每个线程的 Stack 大小,不熟悉最好保留默认值;
设置 JVM 内存分配:
- 当在命令提示符下启动并使用 JVM 时(只对当前运行的类 Test 生效):
java-Xmx128m-Xms64m -Xmn32m -Xss16m Test
当在服务器环境下(如 Tomcat)启动并使用 JVM 时(对当前服务器环境下所以 Java 程序生效):
- 设置环境变量:
- 变量名:CATALINA_OPTS
- 变量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
- 打开 Tomcat 根目录下的 bin 文件夹,编辑 catalina.bat,
- 将其中的%TALINA_OPTS%(共有四处)替换为:-Xmx128m -Xms64m -Xmn32m -Xss16m
查看设置 JVM 内存信息
//最大可用内存,对应-Xmx
Runtime.getRuntime().maxMemory();
//当前 JVM 空闲内存
Runtime.getRuntime().freeMemory();
//当前 JVM 占用的内存总数,其值相当于当前 JVM 已使用的内存及 freeMemory() 的总和
Runtime.getRuntime().totalMemory();
关于 maxMemory(),freeMemory() 和 totalMemory():
- maxMemory() 为 JVM 的最大可用内存,可通过-Xmx 设置,默认值为物理内存的 1/4,设值不能高于计算机物理内存;
- totalMemory() 为当前 JVM 占用的内存总数,其值相当于当前 JVM 已使用的内存及 freeMemory() 的总和,会随着 JVM 使用内存的增加而增加;
- freeMemory() 为当前 JVM 空闲内存,因为 JVM 只有在需要内存时才占用物理内存使用,所以 freeMemory() 的值一般情况下都很小,而 JVM 实际可用内存并不等于 freeMemory(),而应该等于 maxMemory()-totalMemory()+freeMemory()。及其设置 JVM 内存分配。 官方文档见:http://docs.sun.com/source/819-0084/pt_tuningjava.html
java 启动参数共分为三类;
- 标准参数(-),所有的 JVM 实现都必须实现这些参数的功能,而且向后兼容;
- 非标准参数(-X),默认 jvm 实现这些参数的功能,但是并不保证所有 jvm 实现都满足,且不保证向后兼容;
- 非 Stable 参数(-XX),此类参数各个 jvm 实现会有所不同,将来可能会随时取消,需要慎重使用;
标准参数中比较有用的:
verbose -verbose:class
输出 jvm 载入类的相关信息,当 jvm 报告说找不到类或者类冲突时可此进行诊断。
-verbose:gc
输出每次 GC 的相关情况。
-verbose:jni
输出 native 方法调用的相关情况,一般用于诊断 jni 调用错误信息。
非标准参数又称为扩展参数,一般用到最多的是:
-Xms512m
设置 JVM 促使内存为 512m。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存。
-Xmx512m
设置 JVM 最大可用内存为 512M。
-Xmn200m
设置年轻代大小为 200M。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为 64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun 官方推荐配置为整个堆的 3/8。
-Xss128k
设置每个线程的堆栈大小。JDK5.0 以后每个线程堆栈大小为 1M,以前每个线程堆栈大小为 256K。更具应用的线程所需内存大小进行调整。在相同物理内 存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在 3000~5000 左右。
-Xloggc:file
- 与-verbose:gc 功能类似,只是将每次 GC 事件的相关情况记录到一个文件中,文件的位置最好在本地,以避免网络的潜在问题。
- 若与 verbose 命令同时出现在命令行中,则以-Xloggc 为准。
-Xprof
- 跟踪正运行的程序,并将跟踪数据在标准输出输出;适合于开发环境调试。
- 用-XX 作为前缀的参数列表在 jvm 中可能是不健壮的,SUN 也不推荐使用,后续可能会在没有通知的情况下就直接取消了;
- 但是由于这些参数中的确有很多是对我们很有用的,比如我们经常会见到的-XX:PermSize、-XX:MaxPermSize 等等;
首先来介绍行为参数:
参数及其默认值 | 描述 |
---|---|
-XX:-DisableExplicitGC | 禁止调用 System.gc();但 jvm 的 gc 仍然有效 |
-XX:+MaxFDLimit | 最大化文件描述符的数量限制 |
-XX:+ScavengeBeforeFullGC | 新生代 GC 优先于 Full GC 执行 |
-XX:+UseGCOverheadLimit | 在抛出 OOM 之前限制 jvm 耗费在 GC 上的时间比例 |
-XX:-UseConcMarkSweepGC | 对老生代采用并发标记交换算法进行 GC |
-XX:-UseParallelGC | 启用并行 GC |
-XX:-UseParallelOldGC | 对 Full GC 启用并行,当-XX:-UseParallelGC 启用时该项自动启用 |
-XX:-UseSerialGC | 启用串行 GC |
-XX:+UseThreadPriorities | 启用本地线程优先级 |
上面表格中黑体的三个参数代表着 jvm 中 GC 执行的三种方式,即串行、并行、并发;
- 串行(SerialGC)
是 jvm 的默认 GC 方式,一般适用于小型应用和单处理器,算法比较简单,GC 效率也较高,但可能会给应用带来停顿;
- 并行(ParallelGC)
是指 GC 运行时,对应用程序运行没有影响,GC 和 app 两者的线程在并发执行,这样可以最大限度不影响 app 的>运行;
- 并发(ConcMarkSweepGC)
是指多个线程并发执行 GC,一般适用于多处理器系统中,可以提高 GC 的效率,但算法复杂,系统消耗较大;
性能调优参数列表
参数及其默认值 | 描述 |
---|---|
-XX:LargePageSizeInBytes=4m | 设置用于 Java 堆的大页面尺寸 |
-XX:MaxHeapFreeRatio=70 | GC 后 java 堆中空闲量占的最大比例 |
-XX:MaxNewSize=size | 新生成对象能占用内存的最大值 |
-XX:MaxPermSize=64m | 老生代对象能占用内存的最大值 |
-XX:MinHeapFreeRatio=40 | GC 后 java 堆中空闲量占的最小比例 |
-XX:NewRatio=2 | 新生代内存容量与老生代内存容量的比例 |
-XX:NewSize=2.125m | 新生代对象生成时占用内存的默认值 |
-XX:ReservedCodeCacheSize=32m | 保留代码占用的内存容量 |
-XX:ThreadStackSize=512 | 设置线程栈大小,若为 0 则使用系统默认值 |
-XX:+UseLargePages | 使用大页面内存 |
我们在日常性能调优中基本上都会用到以上黑体的这几个属性;
调试参数列表:
参数及其默认值 | 描述 |
---|---|
-XX:-CITime | 打印消耗在 JIT 编译的时间 |
-XX:ErrorFile=./hs_err_pid<pid>.log | 保存错误日志或者数据到文件中 |
-XX:-ExtendedDTraceProbes | 开启 solaris 特有的 dtrace 探针 |
-XX:HeapDumpPath=./java_pid.hprof | 指定导出堆信息时的路径或文件名 |
-XX:-HeapDumpOnOutOfMemoryError | 当首次遭遇 OOM 时导出此时堆中相关信息 |
-XX:OnError="<cmd args>;<cmd args>" | 出现致命 ERROR 之后运行自定义命令 |
-XX:OnOutOfMemoryError="<cmd args>;<cmd args>" | 当首次遭遇 OOM 时执行自定义命令 |
-XX:-PrintClassHistogram | 遇到 Ctrl-Break 后打印类实例的柱状信息,与 jmap -histo 功能相同 |
-XX:-PrintConcurrentLocks | 遇到 Ctrl-Break 后打印并发锁的相关信息,与 jstack -l 功能相同 |
-XX:-PrintCommandLineFlags | 打印在命令行中出现过的标记 |
-XX:-PrintCompilation | 当一个方法被编译时打印相关信息 |
-XX:-PrintGC | 每次 GC 时打印相关信息 |
-XX:-PrintGC Details | 每次 GC 时打印详细信息 |
-XX:-PrintGCTimeStamps | 打印每次 GC 的时间戳 |
-XX:-TraceClassLoading | 跟踪类的加载信息 |
-XX:-TraceClassLoadingPreorder | 跟踪被引用到的所有类的加载信息 |
-XX:-TraceClassResolution | 跟踪常量池 |
-XX:-TraceClassUnloading | 跟踪类的卸载信息 |
-XX:-TraceLoaderConstraints | 跟踪类加载器约束的相关信息 |
[No000019A]IDEA 设置手册的更多相关文章
- zabbix3.x web设置手册(2)
在浏览器中输入:http://10.50.32.48/zabbix/setup.php 如下图: 点击Next step: 如上图,右侧全为ok,则点击Next step:若右侧有fail的情况,需要 ...
- (转载)Linux一句话精彩
(转载)http://bjsfly.blog.163.com/blog/static/161276642007845228371/ 0001[url=111]111[/url] [ 本帖最后由 bjc ...
- PHP的错误处理
PHP的错误处理机制 php的错误处理是比较复杂的, 本文讲解php中所有错误相关的重要知识点做一次梳理, 便于理解php的错误机制. 基础知识 在此之前, 先熟悉一下php error的基础知识 预 ...
- linux精彩收集
----------------------------网络无关篇-------------------------- 0001 修改主机名(bjchenxu) vi /etc/sysconfig/n ...
- 深入Linux内核架构——进程管理和调度(上)
如果系统只有一个处理器,那么给定时刻只有一个程序可以运行.在多处理器系统中,真正并行运行的进程数目取决于物理CPU的数目.内核和处理器建立了多任务的错觉,是通过以很短的间隔在系统运行的应用程序之间不停 ...
- Linux命令总结大全,包含所有linux命令
使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...
- Linux工具之man手册彩色页设置
说明: 对于我们开发人员或者运维工程师来说,经常要查询某个系统命令或者C函数接口的使用方法,最好的最专业的资料就是man手册,通过一些设置可以让man手册页面显示适当颜色,方便阅读,增强美观性. 设置 ...
- 阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?
集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生. 关于HashMap,很多人都对他有一些基本的了解,比如他和hashtab ...
- Linux使用手册-时区和时间设置
1. #vi /etc/sysconfig/clockZONE=”Asia/Shanghai”UTC=false2.#vi /usr/share/zoneinfo/Asia/Shanghai,如果结尾 ...
随机推荐
- vue 项目中安装npm--save-dev 和 --save 命令
在vue项目中我们常用npm install 安装模块或插件 有两种命令把他们写入到 package.json 文件里面去 例如安装axios 安装到开发环境npm axios --save-dev ...
- python应用-综合应用题解决
题目: A,B,C,D,E五个人捕鱼,不计其数,然后休息, 早上A第一个醒来,将鱼均分成五份,把多余的一条鱼扔掉,拿走自己的一份, B第二个醒来,也将鱼均分为五份,把多余的一条鱼扔掉,拿走自己的一份. ...
- Gradle 知识点
mac 系统中,下载的 Gradle 压缩包解压后存储的文件夹:/Users//.gradle/wrapper/dists 当Gradle运行时,会根据settings.gradle的配置情况,构建一 ...
- 26、pathlib文件系统模块(了解)
一.pathlib库官方定义 pathlib 是Python内置库,Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径).path ...
- Windows UI自动化测试的XPATH实现 - WPATH
https://segmentfault.com/a/1190000010339021 从事Windows 桌面应用自动化测试也有一些年了,现在谈这个话题并不流行.因为除了企业级应用,很少有公司会只选 ...
- SSH框架学习中遇到的问题
在web.xml中配置struts2过滤器时,struts2 2.5之前的版本有ng,而2.5之后没有ng,如图 还有要注意web.xml的版本约束,之前一直遇到问题,后来在网上才发现原来时web的版 ...
- react native 依赖库管理:入门
目标文件:package.json { .... "dependencies": { "react": "16.8.3", "re ...
- LeetCode 422. Valid Word Square
原题链接在这里:https://leetcode.com/problems/valid-word-square/ 题目: Given a sequence of words, check whethe ...
- swoolefy PHP的异步、并行、高性能网络通信引擎内置了Http/WebSocket服务器端/客户端
近半年来努力付出,项目终于要正式结项了,团队4人经历了很多困难,加班加点,最终完成了!剩下的时间将总结一下在该项目中用到知识和遇到问题.今天就从swoole说起!项目中实现异步大文件传输的功能,在服务 ...
- luogu P3975 [TJOI2015]弦论 SAM
luogu P3975 [TJOI2015]弦论 链接 bzoj 思路 建出sam. 子串算多个的,统计preant tree的子树大小,否则就是大小为1 然后再统计sam的节点能走到多少串. 然后就 ...