我正在测试AngularJS + ASP.NET WebAPI应用程序之一的性能。我观察到的奇怪的是,在Fiddler中,完全相同的查询是在不同的时间执行的。
不仅在服务器上,而且在我的本地计算机上也观察到此行为。
该应用程序已使用Chrome进行了测试,并使用编写在ASP.NET WebAPI(Microsoft.AspNet.WebApi version 5.2.2
)中Angular JS version 1.3.8
。
该服务器是带有SQL Server 2008和IIS 7.5的Windows Server 2008 R2。
我的本地计算机是带有Visual Studio 2013和SQL Server 2014的Windows 8.1。
我注意到,根据Fiddler,完全相同的查询是在不同的时间执行的(蓝色的查询是相同的,白色的查询是另一种完全相同的查询):
例如,查询号26的详细时间为:
Request Count: 1
Bytes Sent: 583 (headers:517; body:66)
Bytes Received: 3,844 (headers:260; body:3,584)
ACTUAL PERFORMANCE
--------------
ClientConnected: 17:26:25.099
ClientBeginRequest: 17:27:26.544
GotRequestHeaders: 17:27:26.544
ClientDoneRequest: 17:27:26.544
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 17:26:25.102
FiddlerBeginRequest: 17:27:26.544
ServerGotRequest: 17:27:26.544
ServerBeginResponse: 17:27:26.554
GotResponseHeaders: 17:27:26.554
ServerDoneResponse: 17:27:26.554
ClientBeginResponse: 17:27:26.554
ClientDoneResponse: 17:27:26.554
Overall Elapsed: 0:00:00.010
查询号28的详细时间为:
Request Count: 1
Bytes Sent: 583 (headers:517; body:66)
Bytes Received: 3,844 (headers:260; body:3,584)
ACTUAL PERFORMANCE
--------------
ClientConnected: 17:26:25.099
ClientBeginRequest: 17:27:29.104
GotRequestHeaders: 17:27:29.104
ClientDoneRequest: 17:27:29.104
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 17:26:25.102
FiddlerBeginRequest: 17:27:29.104
ServerGotRequest: 17:27:29.104
ServerBeginResponse: 17:27:29.616
GotResponseHeaders: 17:27:29.616
ServerDoneResponse: 17:27:29.616
ClientBeginResponse: 17:27:29.616
ClientDoneResponse: 17:27:29.616
Overall Elapsed: 0:00:00.512
正如我所说,它们是完全相同的查询(相同的标头,相同的数据等)。
在查询26之后1-2秒执行查询28。
发生这种行为的主要原因可能是什么?我应该在哪里寻找问题?奇怪的是,查询先是快速然后缓慢,然后又是快速,等等。我没有理由认为问题与数据缓存有关。
如何精确测试服务器上的计时,以发现秒0.010
和0.512
秒之间的差异?相差超过50倍。
这不是一个尖锐的问题,但是这是我进行故障排除的方法:
运行工具20次-存储时间。他们是一致的吗?如果在这一点上它们不一致,那么我将代码视为罪魁祸首。
如果时间仍然一致,请在数据库中加载更多数据,直到时间开始不一致为止。然后分析查询并开始优化它们。
现在,根据时间的不一致程度,我可以假定该服务在加载数据时会执行其他操作:外部服务调用..某些操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句