我正在优化用C++编码的SAAS产品的性能。我们在代码中的几个点设置了微秒精度计时器,以记录各种操作所需的时间,现在我正在尝试使用AQTime来进一步挖掘,并在一些运行时间较长的请求中找到具体的瓶颈。但是,AQTime在给定函数及其子函数中报告的总时间小于我们内部计时器报告的时间。有没有人经历过这种情况,或者知道为什么会发生?它是否与在VM中运行有关?在我到目前为止描述的几个函数中,差异是相当一致的(AQTime的报告时间大约是我们从CPU计时器记录的时间的60% ),但是如果我发现这发生在其他代码库中,这不仅仅是我们的一个特点,我会感到更放心!
非常感谢!
发布于 2014-01-14 05:26:19
这种行为在很大程度上取决于所使用的计数器。如果您使用的是用户或User+Kernel时间计数器,AQtime只计算CPU执行代码所花费的时间。与使用手动计时器不同,用于执行其他进程或线程的代码所花费的时间不算在内。
经过的时间计数器应该演示与您获得的结果相似的结果,但是即使在这种情况下,由于计时器处理代码增加的开销也会导致一些差异。
您可以在计数器概述帮助系统的AQtime主题中找到更多关于不同计数器的详细信息。
https://stackoverflow.com/questions/21105593
复制相似问题