天天看點

ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進

  不管開發什麼系統,都考慮大資料量的問題,把大數量優化都做一做,例如開發一個權限管理系統,就會考慮有幾萬個使用者,幾千個組織機構,把很多精力都放在系 統大資料的優化上。   後來發現有些過度設計,真正購買我們系統的人大多是小企業,甚至是微型客戶,例如使用者隻有幾個或者幾十個,有幾百人的都不是非常多,自從那以後又把精力轉 移了,把很多精力放在業務功能的分析,軟體是否好用好操作上,是否操作友善等等,這樣堅持了好幾年,效果很明顯軟體越來越功能好用了。   軟體的功能好用了,比較穩定了後,有些大客戶就看上我們的元件了,他們一用發現當有接近1萬個使用者時,軟體的很多頁面就性能比較低了,因為前幾年主要精力 都放在軟體的操作是否好用上而沒關注大客戶的大資料量的性能問題上。   年前遇到一個客戶回報,當使用者數量超過5000後,有些頁面運作速度緩慢,正好利用春節把軟體的大資料時的性能問題重新抓了個重點,把每個遇到大量使用者時 的頁面功能都增加了分頁功能。

   1:如何快速産生10萬個測試使用者?同時在産生測試使用者時能驗證一下程式的多使用者并發時的穩定性?考慮到這個因素,我寫了一個腳本程式每次産生100個測 試使用者資料,然後再寫個多線程的程式,每點一次并發啟動100個線程,這樣一次可以産生1萬條示範資料,連續點上10次,就可以産生10萬條示範使用者資料 了。同時也驗證了資料庫通路元件、底層資料控制函數類的多使用者并發下的安全性、穩定性,確定沒有大并發的程式紊亂問題,用人工去測試這個比較費勁,直接寫 個多線程的腳本測試函數相當輕松愉快就可以搞定這個問題了。當然也可以啟動10次應用程式,每個程式同時啟動100個多線程來測試一下多使用者并發的模拟測 試也是非常不錯的,下面可以看測試效果圖。

ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進
ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進
ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進
ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進
ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進
ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進
ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進
ASP.NET權限元件,生成10萬條測試資料檢測程式的大資料性能改進

   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,如需轉載請自行聯系原作者

繼續閱讀