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:内存用完后,会自己主 ...
随机推荐
- 20175303 2018-2019-2 《Java程序设计》第7周学习总结
20175303 2018-2019-2 <Java程序设计>第7周学习总结 教材学习内容总结 1.String类: Java专门提供了用来处理字符序列的String类 构造String对 ...
- linux磁盘大小获取和文件大小获取
一.获取磁盘大小(给入的是文件夹绝对路径):check_disk_available(QString path) { struct statfs diskinfo; unsigned long lon ...
- WEB日期控件
http://www.cnblogs.com/jiangbei/p/7270788.html 日期控件——my97 <div class="form-group"> ...
- Android的Service的创建与使用
Service介绍 Service是Android四大组件中与Activity最为相似的组件,它们都代表可执行的程序,区别是:Service一直在后台运行,没有用户界面.使用service要向Acti ...
- 树莓派与Linux系统之间文件传输
最近因为要学习Python,于是把放在家里接了一年灰的树莓派又给搜出来了,刚买那会也捣鼓了好一阵子, 基本操作都学会了,但现在又忘光了,只能又从头开始搞了,首先第一个要解决的是怎么把文件从电脑传输到树 ...
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165317
第一周作业 Kali的安装 Kali的下载 从kali官网下载kali-linux 64-bit 版本. Kali的安装 由于在娄老师的课上使用virtualbox, 所以我习惯性使用virtual ...
- 一种JNI混淆方案
转载自:http://www.liuling123.com/2016/06/so_method_mix.html 感谢原作者 侵删 默认情况下,使用JNI时与native对应的JNI函数名都是Java ...
- cnblogs
想注册个博客园来着的,看着大佬们的博客都十分漂亮,但是发现我因为太菜没有办法搞定美化问题. 以后再说吧 写写东西,反正也没人看,但是写的时候尽量按给别人看的格式写吧 2019.3.15 开通博客 计划 ...
- Spring Boot(三):AOP&日志操作&异常处理
一.AOP:HttpAspect.java 二.操作日志 在HttpAspect.java中调用org.slf4j.Logger.org.slf4j.LoggerFactory 三.异常处理 1.定义 ...
- JavaScript实现预览本地上传图片
<html> <head> <title> www.jb51.net图片上传预览 </title> <script> function Pr ...