`
qnlpkuge
  • 浏览: 44845 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

性能优化之缓存

 
阅读更多
    最近在做一个模拟股票系统,系统开发已经接近尾声了,是该到了对系统进行性能测试及性能优化的时候了。
    于是用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数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级MySQLDBA以及其他对MySQL性能优化感兴趣的朋友们有所帮助。数据库属于IO密集型...

    ListView性能优化之视图缓存

    ListView 视图缓存性能优化 ListView 是 Android 中最常用的控件,通过适配器来进行数据适配然后显示出来,而其性能是个很值得研究的话题。在 Android 开发中,ListView 的性能优化是一个重要的方面,本文将讨论 ...

    MySQL DBA教程:Mysql性能优化之缓存参数优化

    MySQL 数据库性能优化是DBA工作中的核心任务之一,尤其对于IO密集型的数据库系统,内存缓存的优化显得尤为重要。本教程将聚焦于MySQL的缓存参数优化,旨在通过调整相关参数,最大化利用内存资源,减少磁盘IO,从而...

    Asp.NET性能优化之局部缓存

    总结来说,局部缓存是Asp.NET性能优化的关键组成部分,能够有效提高网站的响应速度和资源利用率。开发者可以根据具体需求选择合适的缓存策略,如CSS、SSI或ESI,以实现最佳的性能效果。同时,理解和掌握这些技术可以...

    Hibernate缓存,性能优化

    本文将深入探讨Hibernate缓存的原理、类型及其对性能优化的影响。 ### Hibernate缓存原理 Hibernate缓存主要分为一级缓存和二级缓存。一级缓存,也称为会话缓存(Session Cache),是默认启用的,由Hibernate自动...

    Hibernate性能优化:一级缓存

    本文将深入探讨Hibernate性能优化中的一个重要概念——一级缓存,并结合给出的压缩包文件“hibernate_cache_level1”,来详细解析一级缓存的工作原理及其优化策略。 一级缓存是Hibernate内置的一种缓存机制,它存在...

    Web性能优化:缓存策略与实践.docx

    Web性能优化:缓存策略与实践.docx

    06-Redis缓存设计与性能优化最佳实践-ev.rar

    06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_ev.rar06-Redis缓存设计与性能优化最佳实践_...

    ASP.NET Core:性能优化与缓存策略.docx

    ASP.NET Core:性能优化与缓存策略.docx

    MySQL优化之缓存优化(续)

    MySQL缓存优化是数据库性能提升的关键一环,尤其在高并发和大数据量的场景下,合理利用缓存能显著减少磁盘I/O操作,提高查询速度。本文将深入探讨MySQL中的各种缓存机制及其优化策略。 首先,我们关注的是查询缓存...

    SQL Server性能优化专题之一:磁盘缓存.pdf.rar

    在SQL Server性能优化的过程中,磁盘缓存是关键的一环,因为数据库的读写操作大量依赖于磁盘I/O效率。本专题将深入探讨如何利用SQL Server的内存管理和磁盘缓存策略来提升数据库的性能。 首先,了解SQL Server的...

    Ruby on Rails:Rails性能优化与缓存策略.docx

    Ruby on Rails:Rails性能优化与缓存策略.docx

    RESTful API设计:API性能优化与缓存策略.docx

    RESTful API设计:API性能优化与缓存策略.docx

    常用的后端性能优化六种方式:缓存化+服务化+异步化等

    后端性能优化六种方式:缓存化、服务化、异步化等 在软件开发中,后端性能优化是一个非常重要的方面。一个高性能的后端系统可以提高用户体验、增加系统的可扩展性和可维护性、本降低系统的运营成本。今天我们将讨论...

    前端性能优化与实践.zip

    "前端性能优化与实践.zip"这个压缩包包含了一系列关于前端性能优化的深度文章和教程,涵盖了浏览器缓存机制、首屏加载优化、服务端渲染、事件处理策略、图片优化、性能监测工具以及CDN的工作原理等多个方面。...

    05-一线大厂Redis高并发缓存架构实战与性能优化-ev.rar

    05-一线大厂Redis高并发缓存架构实战与性能优化_ev.rar05-一线大厂Redis高并发缓存架构实战与性能优化_ev.rar05-一线大厂Redis高并发缓存架构实战与性能优化_ev.rar05-一线大厂Redis高并发缓存架构实战与性能优化_ev...

Global site tag (gtag.js) - Google Analytics