我有一个带有Entity Framework的asp .net webApplication,它在生产服务器上运行得相当慢。
我正在localhost中测试本地SQLServer数据库,而在生产服务器中,应用程序也使用本地数据库。
所以我期待时间相似,即使生产速度不快。
服务器是一台新机器,具有更多RAM和比我的机器更快的处理器。
我发现改进代码对我有很大帮助(比如stringBuilder取代了大量的concats),但是我无法理解的是时间上的差异!
我总是在发布模式下比较时间。使用简单的Visual Studio发布。
我应该从哪里开始?
生产中的IIS? SQL Server? 它可以是连接字符串吗? 继续调查代码?
提前致谢,
迪奥戈
答案 0 :(得分:3)
我首先要解决这个问题。例如sql server times和iis times。您可以分离代码的不同部分并测量执行时间等。
SQL Server Profiler是开始使用ASP.NET的好工具您可以从简单的trace和page tracing开始。
的更多信息您应该在生产和开发机器中拥有相同的数据,以获得相同的结果。生产服务器也可能忙于开发机器上可能没有的其他东西。
答案 1 :(得分:1)
我建议使用Glympse来获取有关生产过程中的详细信息。
要看的另一件事是Server vs. Workstation garbage collector。这绝对是在开发机器上运行站点与将其部署到服务器之间的一个区别。
答案 2 :(得分:0)
尝试基于ETL的Perfview http://www.microsoft.com/en-us/download/details.aspx?id=28567,专为分析托管代码性能而设计。