关于 Spring For All

关于 Spring For All

Spring For All 的一切
最新动态

最新动态

Spring 5 会是咋样呢
Spring Boot

Spring Boot

快速构建并运行 Spring 应用程序
Spring Cloud

Spring Cloud

分布式系统的一套工具,可用于构建微服务
Spring Framework

Spring Framework

提供依赖注入、事务、Web应用、数据访问等模块
Spring Data

Spring Data

提供一致性数据访问模块
Spring Security

Spring Security

提供应用身份验证和授权支持
Spring Batch

Spring Batch

提供高容批处理操作模块
Spring AMQP

Spring AMQP

基于AMQP消息解决方案
Micro Service Arch.

Micro Service Arch.

微服务架构相关
开源项目及视频教程

开源项目及视频教程

做中国最好的 Spring 开源项目及视频教程
小马哥专栏

小马哥专栏

阿里技术布道者,专注 Spring Boot 及微服务

小马哥 Spring Boot 系列讲座

泥瓦匠BYSocket 发表了文章 • 7 个评论 • 1509 次浏览 • 2017-07-21 11:56 • 来自相关话题

这里推荐一个不错的Spring Boot系列讲座,讲师简介如下:

小马哥,阿里巴巴技术专家,从事十余年Java EE 开发,国内微服务技术讲师。目前主要负责微服务技术推广、架构设计、基础设施、迁移等。重点关注云计算、微服务以及软件架构等领域。
获得过 SUN Java(SCJP、SCWCD、SCBCD)以及 Oracle OCA 等的认证。

讲座大纲
https://segmentfault.com/l/1500000009515571Java 微服务实践 - Spring Boot 系列(一)初体验 https://segmentfault.com/l/1500000009659111Java 微服务实践 - Spring Boot 系列(二) Web篇(上) https://segmentfault.com/l/1500000009767025Java 微服务实践 - Spring Boot 系列(三)Web篇(中) https://segmentfault.com/l/1500000009830944Java 微服务实践 - Spring Boot 系列(四)Web篇(下) https://segmentfault.com/l/1500000009844304Java 微服务实践 - Spring Boot 系列(五)嵌入式Web容器 https://segmentfault.com/l/1500000009904190Java 微服务实践 - Spring Boot 系列(六)数据库 JDBC https://segmentfault.com/l/1500000009952220Java 微服务实践 - Spring Boot 系列(七)MyBatis https://segmentfault.com/l/1500000009952527Java 微服务实践 - Spring Boot 系列(八)JPA https://segmentfault.com/l/1500000009957330Java 微服务实践 - Spring Boot 系列(九)NoSQL https://segmentfault.com/l/1500000009970812Java 微服务实践 - Spring Boot 系列(十)缓存 https://segmentfault.com/l/1500000009971600Java 微服务实践 - Spring Boot 系列(十一)消息 https://segmentfault.com/l/1500000009971716Java 微服务实践 - Spring Boot 系列(十二)验证 https://segmentfault.com/l/1500000009971764Java 微服务实践 - Spring Boot 系列(十三)WebSocket https://segmentfault.com/l/1500000009978309Java 微服务实践- Spring Boot 系列(十四)WebService https://segmentfault.com/l/1500000009978481Java 微服务实践 - Spring Boot 系列(十五)安全 https://segmentfault.com/l/1500000009978585Java 微服务实践 - Spring Boot 系列(十六)日志 https://segmentfault.com/l/1500000009978661Java 微服务实践 - Spring Boot 系列(十七)监管 https://segmentfault.com/l/1500000009978729Java 微服务实践 - Spring Boot 系列(十八)配置 https://segmentfault.com/l/1500000009978826Java 微服务实践 - Spring Boot 系列(十九)测试 https://segmentfault.com/l/1500000009978904Java 微服务实践 - Spring Boot 系列(二十)自定义启动器 查看全部
这里推荐一个不错的Spring Boot系列讲座,讲师简介如下:

小马哥,阿里巴巴技术专家,从事十余年Java EE 开发,国内微服务技术讲师。目前主要负责微服务技术推广、架构设计、基础设施、迁移等。重点关注云计算、微服务以及软件架构等领域。
获得过 SUN Java(SCJP、SCWCD、SCBCD)以及 Oracle OCA 等的认证。

讲座大纲
  • https://segmentfault.com/l/1500000009515571Java 微服务实践 - Spring Boot 系列(一)初体验 
  • https://segmentfault.com/l/1500000009659111Java 微服务实践 - Spring Boot 系列(二) Web篇(上) 
  • https://segmentfault.com/l/1500000009767025Java 微服务实践 - Spring Boot 系列(三)Web篇(中) 
  • https://segmentfault.com/l/1500000009830944Java 微服务实践 - Spring Boot 系列(四)Web篇(下) 
  • https://segmentfault.com/l/1500000009844304Java 微服务实践 - Spring Boot 系列(五)嵌入式Web容器 
  • https://segmentfault.com/l/1500000009904190Java 微服务实践 - Spring Boot 系列(六)数据库 JDBC 
  • https://segmentfault.com/l/1500000009952220Java 微服务实践 - Spring Boot 系列(七)MyBatis 
  • https://segmentfault.com/l/1500000009952527Java 微服务实践 - Spring Boot 系列(八)JPA 
  • https://segmentfault.com/l/1500000009957330Java 微服务实践 - Spring Boot 系列(九)NoSQL 
  • https://segmentfault.com/l/1500000009970812Java 微服务实践 - Spring Boot 系列(十)缓存 
  • https://segmentfault.com/l/1500000009971600Java 微服务实践 - Spring Boot 系列(十一)消息 
  • https://segmentfault.com/l/1500000009971716Java 微服务实践 - Spring Boot 系列(十二)验证 
  • https://segmentfault.com/l/1500000009971764Java 微服务实践 - Spring Boot 系列(十三)WebSocket 
  • https://segmentfault.com/l/1500000009978309Java 微服务实践- Spring Boot 系列(十四)WebService 
  • https://segmentfault.com/l/1500000009978481Java 微服务实践 - Spring Boot 系列(十五)安全 
  • https://segmentfault.com/l/1500000009978585Java 微服务实践 - Spring Boot 系列(十六)日志 
  • https://segmentfault.com/l/1500000009978661Java 微服务实践 - Spring Boot 系列(十七)监管 
  • https://segmentfault.com/l/1500000009978729Java 微服务实践 - Spring Boot 系列(十八)配置 
  • https://segmentfault.com/l/1500000009978826Java 微服务实践 - Spring Boot 系列(十九)测试 
  • https://segmentfault.com/l/1500000009978904Java 微服务实践 - Spring Boot 系列(二十)自定义启动器

IntelliJ IDEA 2017.1 JDK 8 性能调优

mercyblitz 发表了文章 • 3 个评论 • 1155 次浏览 • 2017-07-11 20:32 • 来自相关话题

原文链接
 
IntelliJ IDEA 问题描述

IntelliJ IDEA 在 多窗口、多项目协作开发时,MacBook Pro的散热风扇凶猛地转动,相关配置如下:

MacBook Pro 配置
 
MacBook Pro (Retina, 15-inch, Mid 2015) 
型号名称: MacBook Pro 型号标识符: MacBookPro11,4 
处理器名称: Intel Core i7 处理器速度: 2.2 GHz 处理器数目: 1 核总数: 4 L2 缓存(每个核): 256 KB L3 缓存: 6 MB 内存: 16 GB Boot ROM 版本: MBP114.0172.B16 SMC 版本(系统): 2.29f24IntelliJ IDEA 版本IntelliJ IDEA 2017.1.5 Build #IC-171.4694.70, built on July 4, 2017 JRE: 1.8.0_131-b11 x86_64 JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation Mac OS X 10.12.5问题原因

默认的IDEA JVM参数配置较低,其中配置存放在 /Applications/IntelliJ IDEA CE.app/Contents/bin/idea.vmoptions 文件中,该文件为IDEA 全局配置文件:-Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m解决方法
修改Info.plist文件
定位Info.plist文件

该文件存放在/Applications/IntelliJ IDEA CE.app/Contents 目录下:total 32 16 -rw-r--r-- 1 Mercy admin 4210 7 11 18:43 Info.plist 0 drwxr-xr-x@ 3 Mercy admin 102 7 11 16:21 MacOS 0 drwxr-xr-x@ 7 Mercy admin 238 7 5 14:06 Resources 0 drwxr-xr-x@ 3 Mercy admin 102 7 5 14:06 _CodeSignature 0 drwxr-xr-x@ 13 Mercy admin 442 7 11 18:00 bin 0 drwxr-xr-x@ 116 Mercy admin 3944 7 5 14:06 lib 0 drwxr-xr-x@ 34 Mercy admin 1156 4 25 15:49 license 0 drwxr-xr-x@ 33 Mercy admin 1122 4 25 15:49 plugins 0 drwxr-xr-x@ 3 Mercy admin 102 7 5 14:06 redist修改VMOptions

用 vi 工具打开Info.plist ,其中存在一个 key 元素内容为VMOptions的设置,如下所示:<key>VMOptions</key> <string>-Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -Xbootclasspath/a:../lib/boot.jar</string>其中JVM 参数 -XX:+UseConcMarkSweepGC 为 IDEA 默认配置GC 算法,将其移除,修改为:<key>VMOptions</key> <string>-Dfile.encoding=UTF-8 -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -Xbootclasspath/a:../lib/boot.jar</string>修改用户idea.vmoptions文件
切换当前用户的IDEA 配置目录

通过命令行,cd到~/Library/Preferences/IntelliJIdeaXX/目录下,如本人的机器路径:/Users/Mercy/Library/Preferences/IdeaIC2017.1新建或更新用户idea.vmoptions文件

将新建或者待更新的idea.vmoptions文件,更新以下JVM 配置项-server -XX:+UseG1GC -XX:+UseNUMA -Xms512m -Xmn512m -Xmx8g -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m调优后观察

启动 IntelliJ IDEA 2017.1 后一小时有余,发现风扇狂转的问题基本上没有发生。再通过工具JConsole 连接 IDEA 进程,观察相关数据。

JVM 概要信息连接名称: pid: 9743 运行时间: 1 小时 39 分钟 虚拟机: Java HotSpot(TM) 64-Bit Server VM版本 25.131-b11 进程 CPU 时间: 6 分钟VM 参数VM 参数:-Dfile.encoding=UTF-8 -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=/Users/Mercy/java_error_in_idea_%p.log -XX:HeapDumpPath=/Users/Mercy/java_error_in_idea.hprof -Xbootclasspath/a:../lib/boot.jar -server -XX:+UseG1GC -XX:+UseNUMA -Xms512m -Xmx8g -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m -Djb.vmOptionsFile=/Users/Mercy/Library/Preferences/IdeaIC2017.1/idea.vmoptions -Didea.java.redist=jdk-bundled -Didea.home.path=/Applications/IntelliJ IDEA CE.app/Contents -Didea.executable=idea -Didea.platform.prefix=Idea -Didea.paths.selector=IdeaIC2017.1其中用户idea.vmoptions文件中的配置信息已经追加到JVM 启动参数中:

-server -XX:+UseG1GC -XX:+UseNUMA -Xms512m -Xmx8g -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m

内存信息当前堆大小:   376,068 KB 最大堆大小: 8,388,608 KB 提交的内存: 524,288 KB 暂挂最终处理: 0对象 垃圾收集器: 名称 = 'G1 Young Generation', 收集 = 58, 总花费时间 = 1.583 秒 垃圾收集器: 名称 = 'G1 Old Generation', 收集 = 2, 总花费时间 = 1.930 秒GC 算法已经由CMS切换成了G1算法!

为什么要选择用户idea.vmoptions文件
IDEA 官方的说明Since version 14.0.0, the file /Applications/IntelliJ Idea XX.app/Contents/bin/idea.vmoptions or /Applications/IntelliJ Idea CE XX.app/Contents/bin/idea.vmoptions should be copied to ~/Library/Preferences/IntelliJIdeaXX/idea.vmoptions or ~/Library/Preferences/IdeaICXX/idea.vmoptions.避免升级配置覆盖

IntelliJ IDEA 版本升级时,除非用户自行控制,默认情况IDEA会将全局的idea.vmoptions文件覆盖,因此,选择用户的idea.vmoptions文件可避免升级配置覆盖。 查看全部
原文链接
 
IntelliJ IDEA 问题描述

IntelliJ IDEA 在 多窗口、多项目协作开发时,MacBook Pro的散热风扇凶猛地转动,相关配置如下:

MacBook Pro 配置
 
MacBook Pro (Retina, 15-inch, Mid 2015) 
型号名称: MacBook Pro 型号标识符: MacBookPro11,4 
处理器名称: Intel Core i7 处理器速度: 2.2 GHz 处理器数目: 1 核总数: 4 L2 缓存(每个核): 256 KB L3 缓存: 6 MB 内存: 16 GB Boot ROM 版本: MBP114.0172.B16 SMC 版本(系统): 2.29f24IntelliJ IDEA 版本IntelliJ IDEA 2017.1.5 Build #IC-171.4694.70, built on July 4, 2017 JRE: 1.8.0_131-b11 x86_64 JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation Mac OS X 10.12.5问题原因

默认的IDEA JVM参数配置较低,其中配置存放在 /Applications/IntelliJ IDEA CE.app/Contents/bin/idea.vmoptions 文件中,该文件为IDEA 全局配置文件:-Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m解决方法
修改Info.plist文件
定位Info.plist文件

该文件存放在/Applications/IntelliJ IDEA CE.app/Contents 目录下:total 32 16 -rw-r--r-- 1 Mercy admin 4210 7 11 18:43 Info.plist 0 drwxr-xr-x@ 3 Mercy admin 102 7 11 16:21 MacOS 0 drwxr-xr-x@ 7 Mercy admin 238 7 5 14:06 Resources 0 drwxr-xr-x@ 3 Mercy admin 102 7 5 14:06 _CodeSignature 0 drwxr-xr-x@ 13 Mercy admin 442 7 11 18:00 bin 0 drwxr-xr-x@ 116 Mercy admin 3944 7 5 14:06 lib 0 drwxr-xr-x@ 34 Mercy admin 1156 4 25 15:49 license 0 drwxr-xr-x@ 33 Mercy admin 1122 4 25 15:49 plugins 0 drwxr-xr-x@ 3 Mercy admin 102 7 5 14:06 redist修改VMOptions

用 vi 工具打开Info.plist ,其中存在一个 key 元素内容为VMOptions的设置,如下所示:<key>VMOptions</key> <string>-Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -Xbootclasspath/a:../lib/boot.jar</string>其中JVM 参数 -XX:+UseConcMarkSweepGC 为 IDEA 默认配置GC 算法,将其移除,修改为:<key>VMOptions</key> <string>-Dfile.encoding=UTF-8 -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -Xbootclasspath/a:../lib/boot.jar</string>修改用户idea.vmoptions文件
切换当前用户的IDEA 配置目录

通过命令行,cd到~/Library/Preferences/IntelliJIdeaXX/目录下,如本人的机器路径:/Users/Mercy/Library/Preferences/IdeaIC2017.1新建或更新用户idea.vmoptions文件

将新建或者待更新的idea.vmoptions文件,更新以下JVM 配置项-server -XX:+UseG1GC -XX:+UseNUMA -Xms512m -Xmn512m -Xmx8g -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m调优后观察

启动 IntelliJ IDEA 2017.1 后一小时有余,发现风扇狂转的问题基本上没有发生。再通过工具JConsole 连接 IDEA 进程,观察相关数据。

JVM 概要信息连接名称: pid: 9743 运行时间: 1 小时 39 分钟 虚拟机: Java HotSpot(TM) 64-Bit Server VM版本 25.131-b11 进程 CPU 时间: 6 分钟VM 参数VM 参数:-Dfile.encoding=UTF-8 -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=/Users/Mercy/java_error_in_idea_%p.log -XX:HeapDumpPath=/Users/Mercy/java_error_in_idea.hprof -Xbootclasspath/a:../lib/boot.jar -server -XX:+UseG1GC -XX:+UseNUMA -Xms512m -Xmx8g -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m -Djb.vmOptionsFile=/Users/Mercy/Library/Preferences/IdeaIC2017.1/idea.vmoptions -Didea.java.redist=jdk-bundled -Didea.home.path=/Applications/IntelliJ IDEA CE.app/Contents -Didea.executable=idea -Didea.platform.prefix=Idea -Didea.paths.selector=IdeaIC2017.1其中用户idea.vmoptions文件中的配置信息已经追加到JVM 启动参数中:

-server -XX:+UseG1GC -XX:+UseNUMA -Xms512m -Xmx8g -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m

内存信息当前堆大小:   376,068 KB 最大堆大小: 8,388,608 KB 提交的内存: 524,288 KB 暂挂最终处理: 0对象 垃圾收集器: 名称 = 'G1 Young Generation', 收集 = 58, 总花费时间 = 1.583 秒 垃圾收集器: 名称 = 'G1 Old Generation', 收集 = 2, 总花费时间 = 1.930 秒GC 算法已经由CMS切换成了G1算法!

为什么要选择用户idea.vmoptions文件
IDEA 官方的说明Since version 14.0.0, the file /Applications/IntelliJ Idea XX.app/Contents/bin/idea.vmoptions or /Applications/IntelliJ Idea CE XX.app/Contents/bin/idea.vmoptions should be copied to ~/Library/Preferences/IntelliJIdeaXX/idea.vmoptions or ~/Library/Preferences/IdeaICXX/idea.vmoptions.避免升级配置覆盖

IntelliJ IDEA 版本升级时,除非用户自行控制,默认情况IDEA会将全局的idea.vmoptions文件覆盖,因此,选择用户的idea.vmoptions文件可避免升级配置覆盖。

列队欢迎小马哥

jeatyn 回复了问题 • 3 人关注 • 1 个回复 • 581 次浏览 • 2017-07-10 13:52 • 来自相关话题