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,如需转载请自行联系原作者

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
SQL 安全 测试技术
Web应用程序安全测试
Web应用程序安全测试
|
3月前
|
存储 缓存 监控
Web 应用程序性能测试核心步骤
Web 应用程序性能测试核心步骤
|
3月前
|
开发框架 测试技术 定位技术
如何开展移动应用程序性能测试?
如何开展移动应用程序性能测试?
|
1月前
|
Web App开发 前端开发 测试技术
Web应用程序测试工具Selenium用法详解
Web应用程序测试工具Selenium用法详解
37 0
|
2月前
|
人工智能 安全
外汇MT5/MT4交易所平台系统开发测试版/案例设计/策略步骤/功能需求/源码程序
When developing the MT5/MT4 foreign exchange documentary trading system, the following functions and intelligence can also be considered:
|
3月前
|
前端开发 安全 测试技术
顶级Web应用程序测试工具列表
顶级Web应用程序测试工具列表
|
3月前
|
开发框架 前端开发 小程序
分享46个ASP.NET博客程序源码,总有一款适合您
分享46个ASP.NET博客程序源码,总有一款适合您
24 0
|
3月前
|
安全 前端开发 测试技术
《C++ Concurrencyin Action》第10章--多线程程序的测试和调试
《C++ Concurrencyin Action》第10章--多线程程序的测试和调试
|
3月前
|
前端开发 Java 测试技术
SpringBoot - 应用程序测试方案
SpringBoot - 应用程序测试方案
50 0
|
4月前
|
分布式计算 大数据 Linux
Python大数据之PySpark(三)使用Python语言开发Spark程序代码
Python大数据之PySpark(三)使用Python语言开发Spark程序代码
100 0