.NET下的並行開發


並行開發一直是程序員在開發項目中遇到的一道坎,但為了迎合硬件的升級,面對高端多核的處理器,並行編程勢在必行。在.NET平台下的開發支持並行模式,下面用一個實際項目說明並行的高效率和神奇之處。

在優化中國鐵建企業經營管理系統時,遇到一個迫切需要解決的問題.就是報表處理響應時間的問題,在系統最初數據較少,導出報表響應時間較快。但是隨着數據的不斷擴充,就一個分局的數據導出(大概600條)也需要5分鍾左右,當然這個和電腦的配置相關。若是總股份公司的項目報表導出(6000條左右),那個時間在普通的電腦上根本就是漫長的等待。於此,在中國鐵建股份公司的高端配置服務器上導出的時間也需要很久。系統在報表處理這塊就需要優化,我的解決方案就是並行。

由於總公司的報表是由一個個分局(子公司)的報表合成的,原來的編程是根據程序的串行原則運行,就是完成一個子公司的報表后,才能繼續進行下一個子公司的報表操作。總公司一共有大概50個左右的分局和項目指揮部,這樣就嚴重的增長了報表生產導出的時間。利用並行,就是把原來的子公司讓他們在幾乎(這個需要看看.NET並行的運行原則,他們在並行時還是有很小的時間間隔)同一時間處理報表,開始運行。把原來需要50次左右的時間段變為一次(所需時間最慢開始,最后結束的那次)。這樣就大大的加快了報表的處理速度。但是並行並不是很好控制,我測試,探索了很久才解決數據共享,數據沖突的問題。

當然,並行開發需要利用程序調用系統的多核處理器,這樣在cpu的資源占用上特別的高,我的項目在報表導出時基本是cpu占用是100%。以空間換取時間這是必須要接受的。不過,在真正的多核高端服務器的硬件上,結合並行程序的改良,總公司的報表導出時間問題終於得到解決了。

以下有一些過程截圖,值得一說的是報表生成時間的過程跟蹤截圖,它基本反映了並行程序在運行過程中的記錄。

 圖1 總股份公司的報表導出時間跟蹤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

圖2 一個子公司的報表導出時間跟蹤

圖3 報表導出節目展示

圖4 導出Excel展示


免責聲明!

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



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