我对一般的网站运营都很陌生。我熟悉桌面应用程序的统计分析器,但不确定如何开始分析网站,因为存在许多额外的潜在瓶颈,我不确定哪些分析器可用于网站。
我环顾四周,在其他问题上看到了有用的建议,但我不确定它们是非常完整的解决方案。主要建议是来自this answer的天蓝色性能指标和建议。
总结他们是: 使用firebug单独确定渲染时间和加载时间,以便判断是否存在渲染问题或服务器问题。
如果是服务器端: 测试一个小的静态页面,就像一个带有单个gif的页面。如果这很慢,则会出现CPU问题。否则,可能是IO绑定或数据库性能有问题。
可以使用性能计数器来检查服务器方面,例如: 记忆 垃圾收集 tcp / ip问题 发送/接收的字节数 请求,排队,拒绝的请求 请求等待时间,处理时间
从我天真的角度来看,这个列表中似乎缺少的一些东西就是对传统桌面应用程序的分析,即堆栈看起来像什么时间的百分比(即我们花时间在哪些功能上? ,以及在什么情况下)。另一个缺失的项目是分析数据库性能,这似乎在天蓝色上可能与在本地环境中不同,特别是如果开始处理缩放。另一个是花在第三方服务请求上的时间,尽管可以用天蓝色的性能计数器(?)来完成。
我为这个问题的天真性质道歉。我在这里找到了哪些工具和方面来描述一个天蓝色的MVC asp.net网站,你会对上面的列表做出哪些改变?
答案 0 :(得分:4)
在数据库调用,业务逻辑,呈现视图,甚至客户端性能(例如,可能运行的任何jQuery)方面,分析站点有很多方面。
StackOverflow's MiniProfiler是最简单的事情之一,只需安装一个NuGet包,添加一些Javascript包含,并在using()块中包装你想要测试的内容,你就会看到执行时间(包括LINQ-to-SQL和EF)。如果您想要更细粒度的单个呼叫时间,您甚至可以创建步骤。
MiniProfiler的优点是你可以根据环境启用/禁用,这使它适合在Azure内运行(而不是Visual Studio Profiler)。
您还可以查看Azure Performance Counters,它可以让您了解系统资源,但不是MiniProfiler意义上的分析。但是,它会让您了解网络延迟以及CPU和内存利用率。
一旦您满意,您可以使用Chrome's Developer Tools在客户端配置您的应用程序。它会让你了解你的Javascript正在做得多好,包括CSS选择器和渲染。
另外值得注意的是,Visual Studio在某些更高版本中有一个非常好的Profiler,可以让您深入了解您的代码。在方法,通话计数等方面花费的时间。
在这四种方法之间,您应该能够找到大多数瓶颈,特别是第一次通过时。