2012-04-16 52 views
3

我有一个Windows Azure应用程序(Asp Net Mvc 4)。 在这个应用程序中有一些Ajax。一些请求使用简单的内存中服务器逻辑(没有sql,没有外部Web服务)。 当我在调试模式下本地运行它时,ajax请求获取响应大约需要900 ms。 本地处于释放模式,大约需要30毫秒(可以)。 当我将应用程序发布到Azure时,获取响应的请求需要450 ms。我尝试调试模式和发布,还有云和本地服务配置。在所有情况下,需要450毫秒。 问题:有没有我没有考虑到的事情?以调试或发布模式发布到Windows Azure

+0

你的服务在做什么?任何外部(I/O或网络延迟绑定)操作?你在测量什么?客户往返时间还是记录您的运营的服务方完成时间? – 2012-04-16 16:01:49

+0

它只是从内存缓存中获取一些数据并将其返回。我测量客户往返时间。 – 2012-04-16 16:02:53

+2

您是否试图连接(通过远程桌面)另一个天青实例以消除网络延迟/带宽作为一个可能的问题? – 2012-04-16 16:52:29

回答

1

正确诊断你的ASP.NET MVC应用程序的性能,你需要考虑:

  1. 潜伏期您的客户端计算机和服务器之间。使用ping实用程序来衡量。
  2. 建立HTTP和/或HTTPS连接所用的时间。
  3. 等待您的浏览器可能正在发出的其他并发请求花费的时间。
  4. 数据传输时间,既可以发送请求,也可以检索响应。
  5. 由于过载而在Web服务器上排队。
  6. 实际处理请求的服务器上花费的时间。您可以使用this article中描述的StopwatchAttribute来测量。使用从GitHub当前的代码,但因为文章中的代码与ASP.NET MVC兼容3.

工具,比如Chrome的和Internet Explorer的开发工具,Firefox的萤火虫和Yahoo的YSlow的可以给你一个更深入的了解对你的应用程序的性能。