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性能调优实战(转)的更多相关文章

  1. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  2. JVM 性能调优实战之:一次系统性能瓶颈的寻找过程

    玩过性能优化的朋友都清楚,性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈.性能优化分为好几个层次,比如系统层次.算法层次.代码层次…JVM 的性能优化被认为是底层优化,门槛较高, ...

  3. Apache Pulsar 在 BIGO 的性能调优实战(上)

    背景 在人工智能技术的支持下,BIGO 基于视频的产品和服务受到广泛欢迎,在 150 多个国家/地区拥有用户,其中包括 Bigo Live(直播)和 Likee(短视频).Bigo Live 在 15 ...

  4. Java性能调优实战,覆盖80%以上调优场景

    Java 性能调优对于每一个奋战在开发一线的技术人来说,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 日渐复杂的系统,错综复杂的性能调优,都对Java工程师的技术广度和技术深度提出了更 ...

  5. 高性能 Java 计算服务的性能调优实战

    作者:vivo 互联网服务器团队- Chen Dongxing.Li Haoxuan.Chen Jinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...

  6. PHP 性能分析第三篇: 性能调优实战

    注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或  PHP 性能分析第二篇: 深入研究 XHGui. 在本系列的 ...

  7. Tomcat性能调优实战

    今日帮朋友做了tomcat性能调优的实际操作,心得记录一下. 服务器:Windows2017 配置:CPU 4 内存 8G Tomcat8.0+版本. 压力测试工具:apache-jmeter-4.0 ...

  8. 【转】UIKit性能调优实战讲解

    文/bestswifter(简书作者)原文链接:http://www.jianshu.com/p/619cf14640f3著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 在使用UIKi ...

  9. Spark&amp;Spark性能调优实战

    Spark特别适用于多次操作特定的数据,分mem-only和mem & disk.当中mem-only:效率高,但占用大量的内存,成本非常高;mem & disk:内存用完后,会自己主 ...

随机推荐

  1. centos开启防火墙

    https://www.cnblogs.com/oskyhg/p/8011001.html

  2. init();

    <script language="javascript" type="text/javascript">window.onload = funct ...

  3. freemarker知识点

    一----------------------------freemarker  如果变量不存在或者未NULL时应给默认值,否则报错 ${username!}    默认值空字符串 ${usernam ...

  4. in与exists和not in 与 not exists的区别

    1.in 与 exists: 外表大,用IN:内表大,用EXISTS: 原理: 用in:外表使用了索引,直接作hash连接: 用exists:内表使用了索引,外表作loop循环再进行匹配: 2.not ...

  5. flask基础二

    内容有:1.配置文件处理,2.路由系统,3.视图,4.请求,5.响应,6.模板渲染,7.session,8.flash,9.中间件,10特殊装饰器 一:一个简单知识点 通过路径构成的字符串1.动态导入 ...

  6. 系统重启后,mr程序不生成当前时间段的MRx文件问题

    系统重启后,mr程序不生成当前时间段的MRx文件问题 2019-4-2 之前使用正常的MR程序,系统重启后无法生成MRE\MRO\MRS文件. 服务器有两个时钟:硬件时钟和系统时钟 硬件时钟从根本上讲 ...

  7. 一、使用官方工具建立空springboot

          自己搭过springboot,看的官网,一点点自己弄,集成druid,做了些例子,从0到1弄了一下午. 当时没看到有工具可用,可以把依赖都加上,简称STS.       下载地址: htt ...

  8. openLayers,常见地图实例

    http://openlayers.org/en/master/examples/epsg-4326.html -- 标尺 http://openlayers.org/en/master/exampl ...

  9. DDoS攻击流量检测方法

    检测分类 1)误用检测 误用检测主要是根据已知的攻击特征直接检测入侵行为.首先对异常信息源建模分析提取特征向量,根据特征设计针对性的特征检测算法,若新数据样本检测出相应的特征值,则发布预警或进行反应. ...

  10. 精心调制的Bash主题分享

    第一个是米色背景, 一样遵守蓝色为目录的习惯, 字体为浅灰色,代码和终端看起来相对比较清晰 第二个则是 深海蓝的背景风格,字体都选择饱和度较高的颜色,如下图 终端 配置方法,这里以 mintty 也就 ...