2010-08-24 27 views
1

我的網站正在使用大量的內存,我已經下載了ANTS Memory Profiler的試用版。該站點使用XML文件來存儲屬於這些類別的類別和項目 - 然後遍歷文件(4MB用於分類文件,800KB用於存儲在本地計算機(Web服務器)上的項目文件)和吐出在頁面上的結果,我認爲這是問題所在。問題是,當我點擊我應該點擊的東西時,我可以看到內存在增加,但最終達到了僅增長1或2mb的地步(同樣的請求使得它增加了大約60mb之前);所以在它最初加載文件後它似乎穩定下來。如何爲ASP.NET網站分配內存?

這不符合我在現場網站上看到的內存使用情況,因爲內存將會持續上升 - 我是唯一使用dev站點的站點,而有數百個站點使用活動站點。

我的問題是,如果5個用戶都瀏覽同一個網站,並且全部執行不同的搜索或單擊一個鏈接,是爲每個用戶分配的內存的一部分?

+0

也許你忘了關閉一些對象。 ! (您的一些代碼,可能有助於指出問題) – Aristos 2010-08-24 14:19:27

+0

請解釋「網站使用XML文件存儲導航和項目」的含義。它是怎麼做到的?文件有多大?文件存儲在哪裏?在數據庫中?如果您的內存在每次頁面請求時都以兆字節爲單位上升,那是一個非常糟糕的信號。 – 2010-08-24 14:20:38

+0

@Kirk - Orignial Post已更新。雖然我更感興趣知道如何分配內存。 @Aristos - 該項目對我來說太大了,無法發佈任何可用的代碼,但在分析時我看到XML Objects佔用了大量空間。 – webnoob 2010-08-24 14:30:52

回答

1

當然,所以webnoob有一個答案接受,我會重提我的意見。 :)

請解釋「網站使用XML文件存儲導航和項目」的含義。它是怎麼做到的?文件有多大?文件存儲在哪裏?在數據庫中?如果您的內存在每次頁面請求時都以兆字節爲單位上升,那是一個非常糟糕的信號。

因此,根據每個頁面請求,你必須解析5 MB的XML?我討厭把它打破給你,但那種設計根本不會擴展。要回答你的問題,內存不分配在每個用戶的基礎上。它根據需要分配。聽起來就像每個頁面請求一樣,它必須將5mb的XML加載到內存中,這是令人望而卻步的。您應該考慮使用數據庫,並且只能獲取您在給定請求中特別需要的數據。