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/2146465git

相關文章
相關標籤/搜索