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的热门话题分析
相关文章
|
9月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
8月前
|
存储 缓存 分布式计算
OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
MaxCompute直读OSS外部表优化方案,解决传统ETL架构中数据同步延迟高、传输成本大、维护复杂等问题。通过存储格式优化(ORC/Parquet)、分区剪枝、谓词下推与元数据缓存等技术,显著提升查询性能并降低成本。结合冷热数据分层与并发控制策略,实现高效数据分析。
228 2
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
366 13
|
机器学习/深度学习 分布式计算 数据挖掘
MaxFrame 性能评测:阿里云MaxCompute上的分布式Pandas引擎
MaxFrame是一款兼容Pandas API的分布式数据分析工具,基于MaxCompute平台,极大提升了大规模数据处理效率。其核心优势在于结合了Pandas的易用性和MaxCompute的分布式计算能力,无需学习新编程模型即可处理海量数据。性能测试显示,在涉及`groupby`和`merge`等复杂操作时,MaxFrame相比本地Pandas有显著性能提升,最高可达9倍。适用于大规模数据分析、数据清洗、预处理及机器学习特征工程等场景。尽管存在网络延迟和资源消耗等问题,MaxFrame仍是处理TB级甚至PB级数据的理想选择。
308 6
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
829 13
|
关系型数据库 分布式数据库 数据库
PolarDB 以其出色的性能和可扩展性,成为大数据分析的重要工具
在数字化时代,企业面对海量数据的挑战,PolarDB 以其出色的性能和可扩展性,成为大数据分析的重要工具。它不仅支持高速数据读写,还通过数据分区、索引优化等策略提升分析效率,适用于电商、金融等多个行业,助力企业精准决策。
334 4
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
348 5
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
187 4
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
306 3