spring-petclinic性能调优实战(转)
1.spring-petclinic介绍
spring-petclinic是spring官方做的一个宠物商店,结合了spring和其他一些框架的最佳实践。
架构如下:
1)前端
Thymeleaf做HTML模板引擎或纯JSP加Tag
CSS采用Bootstrap
webjars用来管理客户端依赖
Dandelion做表格
2)后端
Controller,用Spring MVC, Bean Validation
Service, 用Spring事务,加上ehcache缓存
Repository,写了3套,spring data jpa, jpa, jdbc,供大家自由选择
异常处理,统一交给SimpleMappingExceptionResolver处理,导向一个页面exception.jsp
2.性能调优
有专家对这个示例做了一些性能调优实战,使得性能从285 req/sec提升到了1225 req/sec。
性能调优实战一共分5天,对应5篇文章。
第1天,搭建jmeter测试环境,写jmeter脚本,测试一开始的性能是285 req/sec
第2天,用yourkit剖析问题,抓出元凶Dandelion,并解决性能问题,性能提升到560 req/sec。
随后去session化,性能变为532 req/sec。
再使用tomcat新的NIO connector,性能提升到867 req/sec
第3天,找到Commons DBCP乃又一元凶,改用tomcat dbcp,性能提升到910 req/sec。
Webjars也有损性能,所以去掉,性能提升到942 req/sec
去掉人为的monitoring AOP,性能提升到959 req/sec
第4天,测试发现spring data jpa, jpa, jdbc三种性能差别不大。
使用延迟加载和Open Session In View(要小心,有陷阱),性能提升到1066 req/sec
第5天,增加一个cache,用来缓存JpaOwnerRepositoryImpl.findByLastName(),性能提升到1225 req/sec
3.链接
官方原版petclinic
专家优化版petclinic
5篇优化文章,对应5天优化历程
Improving the performance of the Spring-Petclinic sample application (part 1 of 5)
Improving the performance of the Spring-Petclinic sample application (part 2 of 5)
Improving the performance of the Spring-Petclinic sample application (part 3 of 5)
Improving the performance of the Spring-Petclinic sample application (part 4 of 5)
Improving the performance of the Spring-Petclinic sample application (part 5 of 5)
原文链接:https://xpenxpen.iteye.com/blog/2146465
spring-petclinic性能调优实战(转)的更多相关文章
- JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...
- JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
玩过性能优化的朋友都清楚,性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈.性能优化分为好几个层次,比如系统层次.算法层次.代码层次…JVM 的性能优化被认为是底层优化,门槛较高, ...
- Apache Pulsar 在 BIGO 的性能调优实战(上)
背景 在人工智能技术的支持下,BIGO 基于视频的产品和服务受到广泛欢迎,在 150 多个国家/地区拥有用户,其中包括 Bigo Live(直播)和 Likee(短视频).Bigo Live 在 15 ...
- Java性能调优实战,覆盖80%以上调优场景
Java 性能调优对于每一个奋战在开发一线的技术人来说,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 日渐复杂的系统,错综复杂的性能调优,都对Java工程师的技术广度和技术深度提出了更 ...
- 高性能 Java 计算服务的性能调优实战
作者:vivo 互联网服务器团队- Chen Dongxing.Li Haoxuan.Chen Jinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...
- PHP 性能分析第三篇: 性能调优实战
注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或 PHP 性能分析第二篇: 深入研究 XHGui. 在本系列的 ...
- Tomcat性能调优实战
今日帮朋友做了tomcat性能调优的实际操作,心得记录一下. 服务器:Windows2017 配置:CPU 4 内存 8G Tomcat8.0+版本. 压力测试工具:apache-jmeter-4.0 ...
- 【转】UIKit性能调优实战讲解
文/bestswifter(简书作者)原文链接:http://www.jianshu.com/p/619cf14640f3著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 在使用UIKi ...
- Spark&Spark性能调优实战
Spark特别适用于多次操作特定的数据,分mem-only和mem & disk.当中mem-only:效率高,但占用大量的内存,成本非常高;mem & disk:内存用完后,会自己主 ...
随机推荐
- Python函数部分(1)
之前,我们编代码时程序遵循的原则是:根据逻辑从上至下实现功能,其往往用一大段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处.这种方式虽然可以应付一般性 ...
- pta第一次总结
1).实验代码 include<stdio.h> int main() { int n,i,j,a1,a2,b1,b2,sum,x,k; char c; while(~scanf(&quo ...
- 报文分析4、TCP协议的头结构
TCP协议的头结构 来源端口(2字节) 目的端口(2字节) 序号(4字节) 确认序号(4字节) 头长度(4位) 保留(6位) URG ACK PSH RST SYN PIN 窗口大小(2字节) 校验和 ...
- linux挂载系统ios文件与gcc安装
挂载方法: 1.将iso文件拷贝到某一目录下,(/test) 2.建立挂载点文件夹:mkdir /mnt/iso1 3.进入 mount –o loop /test/**.iso /mnt/is ...
- ide phpStorm更换主题
#主题下载地址 http://www.phpstorm-themes.com #更换方式 1.将主题配置保存在 xxx.icls(如果是xml也保存成.icls) 2.打开phpStorm设置(中上方 ...
- Linux Shell 用法
目录 Shell test 命令 数值测试 字符串测试 文件测试 函数返回值 Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测 ...
- box-shodow的使用
text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着HTML5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...
- SVN百度云服务器安装使用。
安装SVN客户端 此时,必须重启,否则经常出现用不了. 重启后,还是用不了的话,那么就重新安装系统. 网站地址: http://xiaomosheng.bceapp.com/ SVN代码服务器的地址: ...
- hystrix参数使用方法
hystrix+feign+ribbon,但是可能很多人都知道hystrix还有线程隔离,信号量隔离,等等各种参数配置,在这几就记录下hystrix的参数, 一.hystrix参数使用方法 通过注解@ ...
- Window Server配置Flask
1.安装了Chrome 2.安装git 3.创建SSH key:ssh-keygen -t rsa -C "youremail@example.com" 4.安装notepad++ ...