[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,如果结尾 ...
随机推荐
- httprunner学习24-sign签名验证
前言 一般公司对外的接口都会用到sign签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后乱请求. sign签名是一种很常见的方式 关于sign签名的可以参考前面 ...
- js动画--封装透明度
这一章我将讲述一些如何将透明度的变化也封装到调用函数中,对于前面几节课的介绍,已经将基本的属性封装到函数中了,宽,长等属性.关于透明度的变化还是有一点区别的,这一章我将封装透明度 先创建一个div & ...
- DecimalField的使用
DecimalField类DecimalField(max_digits =无,decimal_places =无[,**选项])固定精度的十进制数,在Python中表示一个 十进制的实例.有两个必需 ...
- [原创]VBA实现汇总excel,将多个Excel文件内容复制到一个Excel文件中
功能:遍历用户指定的文件夹,把文件夹中所有的excel文件的第一个表格的数据复制到本excel文件中.注意,每个excel文件中有效数据行的判断标准是A列的最后一个有数据的单元格的行号,比如A列到第1 ...
- python基础语法5 函数定义,可变长参数
函数 1.什么是函数 函数就是一种工具. 可以重复调用 2.为什么要用函数 1.防止代码冗(rong)余 2.代码的可读性差 3.怎么用函数 1.定义函数-->制造工具 2.调用函数--> ...
- C#中集合ArrayList与Hashtable的使用
C#中集合ArrayList与Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayList: 一. 注意事项 ...
- Flutter在iOS上的表现就是一坨屎
Flutter在iOS上的表现就是一坨屎: 用户体验差到了极点: 目前来说不值得投入大量精力去研究: 了解一下原理可以.
- js的对象创建
创建对象 字面量的方式: var myHonda = {color: "red", wheels: 4, engine: {cylinders: 4, size: 2.2}} 就是 ...
- js的原型与模板类型
原型处于复用(原型)链上: 模版类型属于构造概念: 对象复用原型的数据和函数: 对象由模版类型+原型构造而成: 模版类型属于构造对象的临时变量,包含了对象空间的所有信息: 原型包含了对象所引用的原型空 ...
- swift是面向对象、面向协议、高阶类型、灵活扩展、函数式编程语言
swift是面向对象.面向协议.高阶类型.灵活扩展.函数式编程语言