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左右的用戶做測試,沒太注意關注大數據量的優化問題,這下心里的一個石頭也落下來了,繼續慢慢推廣“通用權限管理系統組件”省心省事,兼容統一各種業務系統的用戶權限配置管理,促進重復利用勞動成果的理念繼續堅持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM