ASP.NET权限组件,生成10万条测试数据检测程序的大数据性能改进

简介:

  不管开发什么系统,都考虑大数据量的问题,把大数量优化都做一做,例如开发一个权限管理系统,就会考虑有几万个用户,几千个组织机构,把很多精力都放在系 统大数据的优化上。   后来发现有些过度设计,真正购买我们系统的人大多是小企业,甚至是微型客户,例如用户只有几个或者几十个,有几百人的都不是非常多,自从那以后又把精力转 移了,把很多精力放在业务功能的分析,软件是否好用好操作上,是否操作友善等等,这样坚持了好几年,效果很明显软件越来越功能好用了。   软件的功能好用了,比较稳定了后,有些大客户就看上我们的组件了,他们一用发现当有接近1万个用户时,软件的很多页面就性能比较低了,因为前几年主要精力 都放在软件的操作是否好用上而没关注大客户的大数据量的性能问题上。   年前遇到一个客户反馈,当用户数量超过5000后,有些页面运行速度缓慢,正好利用春节把软件的大数据时的性能问题重新抓了个重点,把每个遇到大量用户时 的页面功能都增加了分页功能。

   1:如何快速产生10万个测试用户?同时在产生测试用户时能验证一下程序的多用户并发时的稳定性?考虑到这个因素,我写了一个脚本程序每次产生100个测 试用户数据,然后再写个多线程的程序,每点一次并发启动100个线程,这样一次可以产生1万条演示数据,连续点上10次,就可以产生10万条演示用户数据 了。同时也验证了数据库访问组件、底层数据控制函数类的多用户并发下的安全性、稳定性,确保没有大并发的程序紊乱问题,用人工去测试这个比较费劲,直接写 个多线程的脚本测试函数相当轻松愉快就可以搞定这个问题了。当然也可以启动10次应用程序,每个程序同时启动100个多线程来测试一下多用户并发的模拟测 试也是非常不错的,下面可以看测试效果图。

   2:虽然没有绝对通用,但是可以有相对通用,例如我们的权限管理系统大致有5000个功能点,当你有任何类似需求时,在5000个功能点的基础上再进行2 次开发,那会是非常省心省事,而且还稳定高效,与其他开发人员开发的系统有更好的兼容性,当然我们的组件也会持续进行改进维护,将来也可以拿到更强大的组 件。可以把精力放在核心的业务系统的开发上。

  通用权限管理系统组件里,大用户优化的页面主要有如下九个页面。 FrmUserSelect 用户选择页面 FrmUserAdmin 用户管理页面 FrmUserAudit 用户审核页面 FrmUserPermissionAdmin 用户权限管理页面 FrmLogGeneral.cs 用户访问日志 FrmUserTreeResourcePermission.cs 用户组织机构权限 FrmUserModulePermissionBatchSet.cs 用户菜单权限 FrmUserPermissionItem.cs 用户操作权限项目页面 FrmUserResourcePermission.cs 用户选项(字典)权限

  忙乎了好几天,用10万多个测试用户感受了一下通用权限管理系统组件的大数据性能,每个页面运行起来快了很多了,几乎没什么等待时间了,这还是在我的笔记 本上的运行的,在服务器上应该会更快一些。今天是2013年2月14日情人节,中午把女儿带到杭州动物园让她们进去里面玩了,我在门口调试调试程序等女儿 玩好出来,外面下着小雨空气非常不错很清新。这个春节最大的收获就是用10万的数据压力测试了一下多年精心维护的组件,也算有些得到安慰了,这个春节没白 过也有工作上的成果了,否则还真有罪恶感天天吃吃睡睡、睡睡吃吃就度过春节了也不太好。

  10多年前,那时候我们还在用sql2000时,业务数据量达到10万条后,系统的性能就开始明显下降了,搞各种优化很是费力,不过那时候的电脑的性能也 没现在这么强大,当时觉得10万条数据真的好多啊,现在经常遇到上千万条的数据后,觉得10万条数据太少了,也就是入门级别的数据量一样的感觉了,电脑的 性能在提高、自己的开发水平在提高、数据库技术也在不断提高!

  这下也算是可以给杭州的那个服装公司的客户有个交代了,他们全国各地的加盟店什么的用户算在一起就有6000个以上的用户了,最近2-3年一直用500左 右的用户做测试,没太注意关注大数据量的优化问题,这下心里的一个石头也落下来了,继续慢慢推广“通用权限管理系统组件”省心省事,兼容统一各种业务系统 的用户权限配置管理,促进重复利用劳动成果的理念继续坚持。





本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1188407,如需转载请自行联系原作者

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
10月前
|
测试技术 UED 开发者
性能测试报告-用于项目的性能验证、性能调优、发现性能缺陷等应用场景
性能测试报告用于评估系统性能、稳定性和安全性,涵盖测试环境、方法、指标分析及缺陷优化建议,是保障软件质量与用户体验的关键文档。
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
467 13
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
305 11
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
314 10
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
1095 13
|
10月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
637 14
|
12月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
411 4
|
11月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
1064 0
|
10月前
|
传感器 人工智能 监控
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
303 14
|
10月前
|
机器学习/深度学习 传感器 监控
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
316 1