Album相机管理项目-拼图模板列表查询,TPS较低的性能分析过程
来源:互联网 发布:苹果手机录屏软件 编辑:程序博客网 时间:2024/04/28 13:32
需求说明:
进入拼图模板 查看更多的界面,可以加载此列表,此列表有翻页功能,因此需要下来获取更多翻页数据。<br />
整理逻辑:
从数据库中查询相应分类的拼图模板数据,按照更新时间倒序排列(上下架时会更新更新时间),分类共两种(2海报 3贴图)
Loadrunner测试代码
优化后的TPS
进入拼图模板 查看更多的界面,可以加载此列表,此列表有翻页功能,因此需要下来获取更多翻页数据。<br />
整理逻辑:
从数据库中查询相应分类的拼图模板数据,按照更新时间倒序排列(上下架时会更新更新时间),分类共两种(2海报 3贴图)
Loadrunner测试代码
Action(){/*测试场景:1.获取拼图模板接口,压力测试、稳定性测试、拐点测试;2.单实例下,测试出此接口的拐点值;3.相关表 album_frame;--数据容量1000个,满足3-5年业务的需要 分为两种场景:海报和拼图 1.海报Type=2 Subtype不为0;2.拼图 Type=3 Subtype=04.代码逻辑中,根据Type判断。 */lr_start_transaction("1-获取拼图模板接口");web_reg_find("Text=\"retcode\":0",LAST);web_submit_data("test", "Action=http://192.168.2.184:8090/frame/{type}/list.do", "Method=get", "RecContentType=json", "Snapshot=t63.inf", "Mode=HTTP",ITEMDATA, "Name=page", "Value=1", ENDITEM,"Name=imei", "Value=555", ENDITEM,"Name=model", "Value=555", ENDITEM,"Name=eclapsedtime", "Value=3", ENDITEM,"Name=width", "Value=555", ENDITEM,"Name=height", "Value=555", ENDITEM,"Name=subtype", "Value={subtype}", ENDITEM,LAST);lr_end_transaction("1-获取拼图模板接口", LR_AUTO);return 0;}
性能测试过程中,当Vuser为2000时,TPS较低的性能问题。问题原因是:用MyBatis的rowBounds进行翻页,该插件是物理翻页的,数据量大的时查询速度慢。改成sql中添加Limit限制。
直接使用MyBatis的rowBounds进行翻页,该插件是物理翻页的,数据量大的时候是会导致很慢,所以接口功能一定避免使用该rowBounds进行翻页。优化前: @Override public List<AlbumFrame> list(Integer type, Integer page, Integer subtype, Integer perpage){ Map<String, Object> params = new HashMap<String, Object>(); params.put("type", type); params.put("subtype", subtype); return getSqlSession().selectList("Album.list", params, DalHelper.toRowBounds(page, perpage)); } <select id="list" resultMap="myMap"> select ID, TYPE, SUBTYPE, THUMB, ZIP from album_frame where stat = 1 AND type = #{type} AND subtype = #{subtype} ORDER BY utime DESC </select>优化后: @Override public List<AlbumFrame> list(Integer type, Integer page, Integer subtype, Integer perpage){ Map<String, Object> params = new HashMap<String, Object>(); params.put("type", type); params.put("subtype", subtype); RowBounds rb = DalHelper.toRowBounds(page, perpage); params.put("startIndex", rb.getOffset()); params.put("endIndex",rb.getLimit()); return getSqlSession().selectList("Album.list", params); } <select id="list" resultMap="myMap"> select ID, TYPE, SUBTYPE, THUMB, ZIP from album_frame where stat = 1 AND type = #{type} AND subtype = #{subtype} ORDER BY utime DESC limit #{startIndex},#{endIndex} </select>
优化后的TPS
0 0
- Album相机管理项目-拼图模板列表查询,TPS较低的性能分析过程
- 直接领券TPS低-sql优化过程分析
- 某系统响应时间慢TPS低性能瓶颈调优过程
- 代码死锁,TPS低,RedisQPS低性能问题定位优化
- 多表查询的性能很低
- 接口工程提供给亿起发订单查询tps过低
- TPS相机及相机遮挡的一些处理方法
- 查询和分析存储过程性能的T-SQL
- 求一个性能较低的算法,并可以进行并行化改造,谢谢大家!
- MYSQL:使用慢查询日志定位效率较低的SQL语句
- MYSQL:使用慢查询日志定位效率较低的SQL语句
- MySQL中使用子查询IN效率较低的问题
- MySQL优化:使用慢查询日志定位效率较低的SQL语句
- Android常见问题01_AndroidStudio导入Gradle版本较低的项目一直加载的问题
- 36-电子发票查询接口-TPS波动较大-典型的性能问题-内存溢出
- 有项目管理模板提供吗?(模板和管理工具对过程改进的帮助)
- 类比较的过程
- 基于opencv的相机之拼图功能实现(十)
- 图书馆管理系统的出路,下一代图书馆管理系统发展方向
- 匿名方法,委托,特性和事件实例复习
- 标准C++_02_面向对象
- android 开发之坑系列_实体序列化问题
- Servlet与JSP之间传值
- Album相机管理项目-拼图模板列表查询,TPS较低的性能分析过程
- Android开发艺术探索--第二章IPC机制(3)之Android中的IPC方式
- 关于UDP发包长度及分包问题限制问题(笔记)
- UISwitch开关控件
- Masonry源代码解析
- springmvc+hibernate+mysql
- PHP foreach变量的坑
- 高效移除表中数据
- PHP学习之常量