ASP.NET技巧:同時(shí)對(duì)多個(gè)文件進(jìn)行大量寫操作對(duì)性能優(yōu)化
我自己的一個(gè)項(xiàng)目,需要同時(shí)對(duì)65536個(gè)文件進(jìn)行多次寫操作。
如果先全部打開所有的文件,然后重復(fù)寫,最后關(guān)閉所有的文件。那么第一次寫操作全部完成需要16分鐘左右,而第二次就需要40分鐘了。沒有繼續(xù)測(cè)試了。
for (int i = 0; i < 65536; i++)
{
fileStream[i] = new FileStream(buffDir+"\\"+ i.ToString() + ".dat", FileMode.Create,FileAccess.Write, FileShare.Write,14000);
}
write;
write;
write;
........
for (int i = 0; i < 65536; i++)
{
fileStream[i] .close();
}
如果在寫操作的時(shí)候只打開相應(yīng)的一個(gè)文件,寫完關(guān)閉。那么所有寫操作完成只要2分30秒左右。
循環(huán)
{
for (int i=0;i<65536;i++)
{
open;
write;
close;
}
}
由此可見,第二種辦法性能要遠(yuǎn)大于第一種。一次打開所有的文件,需要占用不小的內(nèi)存,最主要的是.net在處理filestream 的時(shí)候,可能要進(jìn)行大量的內(nèi)存分配和回收等工作,消耗了大量內(nèi)存和資源。
另外我也做個(gè)測(cè)試,如果文件數(shù)目比較小,那么第一種的性能又要大大好于第二種。
- ASP.NET性能優(yōu)化之局部緩存分析
- ASP.NET 性能優(yōu)化之反向代理緩存使用介紹
- ASP.NET性能優(yōu)化之讓瀏覽器緩存動(dòng)態(tài)網(wǎng)頁的方法
- ASP.NET性能優(yōu)化之構(gòu)建自定義文件緩存
- ASP.NET性能優(yōu)化小結(jié)(ASP.NET&C#)
- asp.net 程序性能優(yōu)化的七個(gè)方面 (c#(或vb.net)程序改進(jìn))
- ASP.NET比較常用的26個(gè)性能優(yōu)化技巧
- asp.net小談網(wǎng)站性能優(yōu)化
- ASP.NET性能優(yōu)化之減少請(qǐng)求
- asp.net性能優(yōu)化之使用Redis緩存(入門)
相關(guān)文章
.NET性能優(yōu)化之為集合類型設(shè)置初始大小的方法
這篇文章主要介紹了.NET性能優(yōu)化之為集合類型設(shè)置初始大小的方法,今天要談的一個(gè)性能優(yōu)化的Tips是一個(gè)老生常談的點(diǎn),但是也是很多人沒有注意的一個(gè)點(diǎn)。在使用集合類型是,你應(yīng)該設(shè)置一個(gè)預(yù)估的初始大小,那么為什么需要這樣做?我們一起來從源碼的角度說一說2022-05-05
Asp.net中時(shí)間格式化的6種方法詳細(xì)總結(jié)
數(shù)據(jù)控件綁定時(shí)格式化日期方法/用DataBinder.Eval進(jìn)行數(shù)據(jù)綁定時(shí)/直接用ToString方法轉(zhuǎn)換日期顯示格式/用String類轉(zhuǎn)換日期顯示格式等等,感興趣的你了解下哦,或許對(duì)你學(xué)習(xí)時(shí)間格式化有所幫助2013-02-02
GridView中動(dòng)態(tài)設(shè)置CommandField是否可用或可見的小例子
GridView中動(dòng)態(tài)設(shè)置CommandField是否可用或可見的小例子,需要的朋友可以參考一下2013-05-05
.NET實(shí)現(xiàn)異步編程async和await
這篇文章介紹了.NET實(shí)現(xiàn)異步編程async和await的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
使用Ajax更新ASP.Net MVC項(xiàng)目中的報(bào)表對(duì)象方法
下面小編就為大家分享一篇使用Ajax更新ASP.Net MVC項(xiàng)目中的報(bào)表對(duì)象方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01
asp.net url傳遞后地址欄亂碼(中文超過兩個(gè)漢字)
asp.net 頁面?zhèn)髦形某^兩個(gè)漢字后面就亂碼,編碼編好的url是正確的,可傳到另一個(gè)頁面就會(huì)出錯(cuò),在地址欄就已經(jīng)亂碼了,本文介紹詳細(xì)的解決方法,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)asp.net有所幫助2013-02-02

