最近在做一个模拟股票系统,系统开发已经接近尾声了,是该到了对系统进行性能测试及性能优化的时候了。
于是用ab对系统进行冲击,我以100/sec的速度发送1000个请求,请求命令如下:
ab -n 1000 -c 100 -C sid=f6ea35fc-855a-47bb-9ef1-fe7133b7d423 http://localhost:8090/front/stockManage/proList.action?_=1335603896628
完成1000个请求处理需要31sec,这个结果显然无法按受。
于是把log设为error级,打开数据库监控,根据数据库优化顾问结果把索引建上再发动冲击
结果如下
发现性能没有提高反而下降了,平均最快的50%都能在2.828秒处理完,但最长的需在6.578秒,
最长处理请求明显无法接受;
分析代码,在代码中有这么一段,就是把本地股票代码查询出来后要发http请求到sina股票数据接口去查询实时价格,如果在我们的代码中一下子发送100个http请求,请求需要排队的,所以整体性能都很慢,并且网络的IO速度肯定比本地要慢,所以必须要把数据缓存起来以减少http请求,那么整体性能将大大提高,由于价格是动态,所以我只将数据缓存10秒,
@Override
public List<StockActivity> initStockInfo(String code) {
List<StockActivity> list=(List<StockActivity>)cacheService.get(code);
if(list!=null){
return list;
}
String result = new HttpComment().access(String.format(
DATA_REQUEST_URL, code), null);
String[] acts = result.split(";");
list = new ArrayList<StockActivity>();
for (int i = 0; i < acts.length; i++) {
list.add(stockParser(acts[i]));
}
cacheService.set(code, 10, list);
return list;
}
再次对系统进行冲击结果如下:
加了缓存之后最大处理时间为4.296秒,有了明显的提高,但是这样做同样带来的问题,就是在并发量很少的时候会有很多数据缓存后10秒钟到期被替换出去,这样缓存命中率就会严重下降。
- 大小: 47.2 KB
- 大小: 78.7 KB
- 大小: 65.8 KB
分享到:
相关推荐
在平时被问及最多的问题就是关于MySQL数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级MySQLDBA以及其他对MySQL性能优化感兴趣的朋友们有所帮助。数据库属于IO密集型...
ListView 视图缓存性能优化 ListView 是 Android 中最常用的控件,通过适配器来进行数据适配然后显示出来,而其性能是个很值得研究的话题。在 Android 开发中,ListView 的性能优化是一个重要的方面,本文将讨论 ...
MySQL 数据库性能优化是DBA工作中的核心任务之一,尤其对于IO密集型的数据库系统,内存缓存的优化显得尤为重要。本教程将聚焦于MySQL的缓存参数优化,旨在通过调整相关参数,最大化利用内存资源,减少磁盘IO,从而...
总结来说,局部缓存是Asp.NET性能优化的关键组成部分,能够有效提高网站的响应速度和资源利用率。开发者可以根据具体需求选择合适的缓存策略,如CSS、SSI或ESI,以实现最佳的性能效果。同时,理解和掌握这些技术可以...
本文将深入探讨Hibernate缓存的原理、类型及其对性能优化的影响。 ### Hibernate缓存原理 Hibernate缓存主要分为一级缓存和二级缓存。一级缓存,也称为会话缓存(Session Cache),是默认启用的,由Hibernate自动...
本文将深入探讨Hibernate性能优化中的一个重要概念——一级缓存,并结合给出的压缩包文件“hibernate_cache_level1”,来详细解析一级缓存的工作原理及其优化策略。 一级缓存是Hibernate内置的一种缓存机制,它存在...
Web性能优化:缓存策略与实践.docx
06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_...
ASP.NET Core:性能优化与缓存策略.docx
MySQL缓存优化是数据库性能提升的关键一环,尤其在高并发和大数据量的场景下,合理利用缓存能显著减少磁盘I/O操作,提高查询速度。本文将深入探讨MySQL中的各种缓存机制及其优化策略。 首先,我们关注的是查询缓存...
在SQL Server性能优化的过程中,磁盘缓存是关键的一环,因为数据库的读写操作大量依赖于磁盘I/O效率。本专题将深入探讨如何利用SQL Server的内存管理和磁盘缓存策略来提升数据库的性能。 首先,了解SQL Server的...
Ruby on Rails:Rails性能优化与缓存策略.docx
RESTful API设计:API性能优化与缓存策略.docx
后端性能优化六种方式:缓存化、服务化、异步化等 在软件开发中,后端性能优化是一个非常重要的方面。一个高性能的后端系统可以提高用户体验、增加系统的可扩展性和可维护性、本降低系统的运营成本。今天我们将讨论...
"前端性能优化与实践.zip"这个压缩包包含了一系列关于前端性能优化的深度文章和教程,涵盖了浏览器缓存机制、首屏加载优化、服务端渲染、事件处理策略、图片优化、性能监测工具以及CDN的工作原理等多个方面。...
05-一线大厂Redis高并发缓存架构实战与性能优化_ev.rar05-一线大厂Redis高并发缓存架构实战与性能优化_ev.rar05-一线大厂Redis高并发缓存架构实战与性能优化_ev.rar05-一线大厂Redis高并发缓存架构实战与性能优化_ev...