2016-09-01 23 views
-1

所以我幾乎完成了一個小型的網絡應用程序,並且自部署它以來,性能一直相當糟糕。它沒有任何關於圖形的東西,主要是一堆數據網格,它們是通過一些LINQ查詢進行數據綁定的。但它的速度非常緩慢......我傾向於指向主機(ahem ... GD),但我應該在哪裏確定它不是我的代碼?評估我的ASP.NET應用程序的性能?

+1

看看下載頁面的大小。提琴手或任何瀏覽器調試工具將顯示此。您很可能下載的數據比您意識到的要多得多,而且緩慢是由帶寬引起的。 – David

+0

你可以在本地運行嗎?你有更好的速度嗎? – logixologist

+0

@logixologist是的,好得多,這就是爲什麼我很想假設它是主機,但我想確定之前,我的手指。 – PaulBinCT2

回答

0

如果您正在使用WebForms,請關閉網格控件的viewstate(如果僅將它們用於顯示)。在電網控制中保持狀態會導致性能下降。

+0

謝謝我沒有意識到這一點......我會嘗試。你能澄清一下你的意思嗎? VS ...?這些網格也用於編輯。 – PaulBinCT2

+0

謝謝大家!這些是令人敬畏的建議和意見!我會用它們做一些功課並回報! – PaulBinCT2

+0

我的意思是當你沒有編輯。在這種情況下,您可能需要尋找其他性能改進。 Vinay有一些很好的建議。減少網格中的數據的大小,你也可以提供幫助。因此,如果您可以在顯示網格之前將篩選添加到返回網格數據集的查詢中,這將有所幫助。 – KGayda

0

我知道這不是一個真正的答案,但是當涉及到沒有已知源的性能問題時,應該尋找一個分析器。

搜索查詢ASP.NET profiler有很多性能測試選項。來自Google的第一個鏈接建議來自MSDN的this "how to"

0

根據數據量,特別是如果您在跨實體需要JOIN的查詢時,LINQ可能無法創建性能最高的代碼。我建議使用像EF-Profiler這樣的LINQ分析器來查看正在運行的內容。您可能有N + 1個查詢情況,每個頁面加載有數百個查詢正在運行。

http://hibernatingrhinos.com/products/EFProf

另外,如果您的數據網格加載整個數據集到內存/頁,做過濾客戶端,可能導致性能不佳。一次返回多少行以及頁面上顯示多少行?

+0

有多個連接,我正在加載整個數據集,但在這一點上並不多。也許總共有上百行,每列有6或7列 – PaulBinCT2

+0

JOIN是您正在編碼或依靠LINQ/EF創建的東西嗎?你使用EF的Include()功能嗎? –

+0

有點邁克爾,但沒有使用「包括()」我記得的任何地方 – PaulBinCT2

2

步履維艱可能是由於多種原因,下面是一個小的待辦事項列表: -

1)檢查使用的開發工具的頁面大小。

2)使用.Net分析器工具來查看特定區域是否導致應用程序的緩慢區域。

3)檢查由linq生成的sql查詢語句,如果需要優化。

4)如果您經常訪問主數據庫或不頻繁更改的數據庫。你可以在這裏使用緩存。

一旦你確定了疼痛區域,你就可以找到足夠的資源在互聯網上,但不知道原因,你不能尋找補救措施。