`
dingjun1
  • 浏览: 208516 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

性能调优记录

 
阅读更多
背景:
    最近需要开一个10分钟一期的彩种,需要测试下往第三方出票的速度、获取中奖名单和算奖比对执行时间,10分钟一期对性能要求比较高

出票优化:
    1、一次查询多票,开多线程并发投注。
    2、一次投注传输多票
    3、支付后启用消息驱动投注,为了保险会有一个定时任务扫描表往投注队列中补充遗漏的记录

获取中奖名单:
    按照习惯,开始我还以为是FOR循环中多次数据库交互是主要瓶颈,改造成批量后,由于按主键取,速度很快,并没有什么改进,分析日志,从第三方接口取名单会比较慢,交互185次,取了9205条记录,费时1分钟多钟,需要改成并发去取名单


算奖:
    还是开多线程进行算奖比对。

主要收获:
    如果按主键取记录,并没有我原来想象的那么慢,实际测试了一下
单次取100条时间(ms)循环100次(ms)取单条(ms)
143,565,6
121,571,6
115,778,6

100次相差5倍,但是还是在毫秒级,优化并不会效果明显。

多线程算奖代码:

private void concurrentCalPrize(final LotteryIssue issue,final Collection<Long> orderIds){
    	if(orderIds == null || orderIds.isEmpty()){
    		return ;
    	}
    	
    	final CountDownLatch latch = new CountDownLatch(orderIds.size());

    	ExecutorService service = new ThreadPoolExecutor(5,5,100,TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>(Integer.MAX_VALUE));
    	 for (final long jdorderId : orderIds) {
	    	service.execute(new Runnable(){public void run(){
	    		try{
	    			calOrderPrize(issue,jdorderId);
	    		}catch(Exception e){
	    			log.error("",e);
	    		}finally{
	    			latch.countDown();
	    		}
	    	}});
    	 }
    	 
		try {
			latch.await();
		} catch (InterruptedException e) {
			log.error("", e);
		}
		try {
		service.awaitTermination(5, TimeUnit.SECONDS);
		} catch (InterruptedException e) {
			log.error("", e);
		}
		service.shutdown();
    }
分享到:
评论

相关推荐

    性能调优实战记录(doc)

    doc格式的文件 对一次性能调优过程的讲解,描述 能得到不少启发

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...

    走向Erlang网络编程性能调优之旅

    在摸索过一段时间Erlang文档后,笔者开始走向了Erlang网络连接的性能调优之旅。本文详细记录了笔者走向Erlang网络编程性能调优之旅的每个脚印。

    SQL性能调优方法特提供下载

    SQL性能调优方法特提供下载,记录自己在学习过程中有关性能调优的方法

    Oracle性能调优

    测量并记录当前性能 确定当前Oracle性能瓶颈 跟踪事件 本文档是本人多年OARCLE调优经验的集合,非常具有实用价值

    IBM DB2 V9 性能调优(培训文档+实验记录)

    IBM DB2 V9 性能调优(培训文档+实验记录)

    数据库-性能调优-查看事件监视器输出-收集脚本getevmon

    一般我们使用这个脚本来监控当前数据库正在发生的活动,这有助于我们对数据库性能进行调优。 使用方法:sh getevmon.sh dbname outputfile 60 #dbname:要监控的数据库实例名 #outputfile:输出文件名,自定义 #60:...

    Oracle数据库Sql性能调优

    1.11 删除重复记录 8 1.12 用TRUNCATE替代DELETE 9 1.13 尽量多使用COMMIT 9 1.14 计算记录条数 9 1.15 用WHERE子句替换HAVING子句 9 1.16 减少对表的查询 10 1.17 通过内部函数提高SQL效率 10 1.18 使用表的别名...

    SQLServer的性能调优:解决查询速度慢的五种方法

    本文主要通过一下几个方面介绍:使用SQLDMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQLAzure查询性能洞察等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是...

    Spring Boot应用性能调优实战:批量更新篇.zip

    通过实际测试对比了Spring Boot中6种MySQL批量更新方式的效率,并详细记录了每种方法在处理500,1000,5000,10000,50000,100000条数据的平均时间、最小时间和最大时间。包括MyBatis-Plus提供的批量更新,JdbcTemplate...

    数据库性能调优:六种批量更新策略对比与选择.zip

    通过实际测试对比了Spring Boot中6种MySQL批量更新方式的效率,并详细记录了每种方法在处理500,1000,5000,10000,50000,100000条数据的平均时间、最小时间和最大时间。包括MyBatis-Plus提供的批量更新,JdbcTemplate...

    网络篇 1:webpack 性能调优与 Gzip 原理(1).md

    前端性能优化实践# 知识体系与小册格局 ## 写给读者 提起性能优化,大家现在脑海里第一时间会映射出什么内容呢? 可能是类似[“雅虎军规”](https://developer.yahoo.com/performance/rules.html?guccounter=1)和...

    MySQL性能调优与架构设计 - 简朝阳.mobi

    1、MySQL的主要适用场景 web网站系统,日志记录系统,数据仓库系统,嵌入式系统 2、物理文件 2.1、 日志文件含 错误日志,二进制日志,更新日志(5.0后不支持),查询日志,慢查询日志,redo日志 2.2、数据文件含 ....

    23进阶 10:API 性能测试和调优(2).md

    23进阶 10:API 性能测试和调优(2)

    大方法的执行性能与调优过程小记1

    再次对play()进行测试,耗时855毫秒/万次,性能终于上来了,输出的JIT编译记录也增加了一行: 16 HugeM

    Etag和Expires 性能调优

    2、静态下Apache、Lighttpd和Nginx中Etag和Expires配置3、非实时交互动态页面中...服务器端响应同时记录相关属性标记(Http Reponse Header),服务器端的返回状态会是200,格式类似如下:HTTP/1.1 200 OKDate: Tue, 0

    基于Java和Python的Apache Spark自动调优工具设计源码

    本项目是一个基于Java和Python开发的Apache Spark自动调优工具,包含74个文件,主要文件类型包括Java源代码、Python脚本、数据文件、XML...用户只需提供相关数据和参数历史记录,系统便能自动进行调优,提高系统性能。

    性能测试进阶指南——LoadRunner11实战 part2

    6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标性能测试...

    如何做性能测试-性能测试过程详述

    系统调优(硬件调优、数据库调优) 出一份报告给客户看 1.4 性能指标 (举例) 平均响应时间(秒) 成功率(%) 系统最大处理能力(请求/秒) 系统支持的最大并发用户数 系统预期响应时间(秒) 1.5 性能测试过程 ...

    性能测试进阶指南——LoadRunner11实战 part3

    6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标性能测试...

Global site tag (gtag.js) - Google Analytics