簡體   English   中英

生產 ASP.net 應用比開發慢

[英]Production ASP.net App slower than Development

我有一個帶有實體框架的 asp .net webApplication,它在生產服務器中運行得相當慢。

我在本地主機上針對本地 SQLServer 數據庫進行測試,在生產服務器中,應用程序也使用本地數據庫。

所以我期待時間是相似的,如果不是更快的話。

服務器是一台新機器,比我的機器有更多的內存和更快的處理器。

我發現改進代碼對我幫助很大(比如 stringBuilder 替換了很多 concat),但我無法理解的是時間上的差異!

我總是在發布模式下比較時間。 使用簡單的 Visual Studio 發布。

我應該從哪里開始?

IIS 生產中? SQL 服務器? 它可以是連接字符串嗎? 繼續研究代碼?

提前致謝,

迪奧戈

我將從解決這個問題開始。 例如sql server時間和iis時間。 您可以分離代碼的不同部分並衡量執行時間等。

SQL Server Profiler是用於ASP.NET的好工具,您可以從簡單的跟蹤頁面跟蹤開始

有關測試性能的更多信息

您應該在生產和開發機器中使用相同的數據才能獲得相同的結果。 生產服務器也可能忙於開發計算機上可能沒有的其他事情。

我建議使用Glympse以獲得生產中正在發生的事情的更多詳細信息。

要看的另一件事是服務器與工作站垃圾收集器 在您的開發機器上運行站點與將其部署到服務器之間,這絕對是一個區別。

在某些情況下, 服務器GC過去曾導致性能問題

嘗試基於ETL的Perfview http://www.microsoft.com/zh-cn/download/details.aspx?id=28567 ,它是專為分析托管代碼性能而設計的。

對我來說,事實證明是 system.codedom 導致了生產環境中的性能下降,而 IIS Express 在本地調試時一切正常。

檢查您的 Web.config 並刪除以下內容。

 <system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers></system.codedom>

如果您進行預編譯並且僅在網絡服務器上使用已編譯的程序集,則可以安全地從 web.config 中刪除它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM