并行開發(fā)一直是程序員在開發(fā)項(xiàng)目中遇到的一道坎,但為了迎合硬件的升級(jí),面對(duì)高端多核的處理器,并行編程勢(shì)在必行。在.NET平臺(tái)下的開發(fā)支持并行模式,下面用一個(gè)實(shí)際項(xiàng)目說明并行的高效率和神奇之處。
在優(yōu)化中國鐵建企業(yè)經(jīng)營管理系統(tǒng)時(shí),遇到一個(gè)迫切需要解決的問題.就是報(bào)表處理響應(yīng)時(shí)間的問題,在系統(tǒng)最初數(shù)據(jù)較少,導(dǎo)出報(bào)表響應(yīng)時(shí)間較快。但是隨著數(shù)據(jù)的不斷擴(kuò)充,就一個(gè)分局的數(shù)據(jù)導(dǎo)出(大概600條)也需要5分鐘左右,當(dāng)然這個(gè)和電腦的配置相關(guān)。若是總股份公司的項(xiàng)目報(bào)表導(dǎo)出(6000條左右),那個(gè)時(shí)間在普通的電腦上根本就是漫長的等待。于此,在中國鐵建股份公司的高端配置服務(wù)器上導(dǎo)出的時(shí)間也需要很久。系統(tǒng)在報(bào)表處理這塊就需要優(yōu)化,我的解決方案就是并行。
由于總公司的報(bào)表是由一個(gè)個(gè)分局(子公司)的報(bào)表合成的,原來的編程是根據(jù)程序的串行原則運(yùn)行,就是完成一個(gè)子公司的報(bào)表后,才能繼續(xù)進(jìn)行下一個(gè)子公司的報(bào)表操作。總公司一共有大概50個(gè)左右的分局和項(xiàng)目指揮部,這樣就嚴(yán)重的增長了報(bào)表生產(chǎn)導(dǎo)出的時(shí)間。利用并行,就是把原來的子公司讓他們?cè)趲缀酰ㄟ@個(gè)需要看看.NET并行的運(yùn)行原則,他們?cè)诓⑿袝r(shí)還是有很小的時(shí)間間隔)同一時(shí)間處理報(bào)表,開始運(yùn)行。把原來需要50次左右的時(shí)間段變?yōu)橐淮危ㄋ钑r(shí)間最慢開始,最后結(jié)束的那次)。這樣就大大的加快了報(bào)表的處理速度。但是并行并不是很好控制,我測(cè)試,探索了很久才解決數(shù)據(jù)共享,數(shù)據(jù)沖突的問題。
當(dāng)然,并行開發(fā)需要利用程序調(diào)用系統(tǒng)的多核處理器,這樣在cpu的資源占用上特別的高,我的項(xiàng)目在報(bào)表導(dǎo)出時(shí)基本是cpu占用是100%。以空間換取時(shí)間這是必須要接受的。不過,在真正的多核高端服務(wù)器的硬件上,結(jié)合并行程序的改良,總公司的報(bào)表導(dǎo)出時(shí)間問題終于得到解決了。
以下有一些過程截圖,值得一說的是報(bào)表生成時(shí)間的過程跟蹤截圖,它基本反映了并行程序在運(yùn)行過程中的記錄。
圖1 總股份公司的報(bào)表導(dǎo)出時(shí)間跟蹤
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
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注