我们正在调试一些性能问题,并注意到秒表的一些奇怪结果。
- 我们有一个调用 Web 服务的客户端
- 我们使用秒表在服务层记录时间以及 Web 服务
- 我们用 datetime.now.ticks 记录下层的时间
第 2 层只是具有 2 行日志记录的传递层。
记录的时间是:
- 110 毫秒
- 52125 毫秒
- 125 毫秒
我们曾预计 2 小于 1,尽管没有 api 精确到 1 毫秒。
我们在每个服务调用中创建一个新的秒表,因此这不是重新启动旧秒表的时间。
有谁知道我们为什么要得到这些数字?
编辑
2 和 3 在同一台机器和同一个应用程序域上
秒表代码是:
var sw = new Stopwatch();
sw.Start();
//code to call layer 3
sw.Stop();
orchestrationContext.LogOperationTime(functionName, sw.ElapsedMilliseconds);
在第 3 层记录时间
protected DateTime StartTime { get; set; }
StartTime = DateTime.Now;
// code
new TimeSpan(DateTime.Now.Ticks - StartTime.Ticks).Milliseconds
1 的日志记录在单独的机器上,使用 Websphere 进行日志记录。