当前位置:  开发笔记 > 后端 > 正文

基准测试时,是什么导致CPU时间和"实时流逝"之间的延迟?

如何解决《基准测试时,是什么导致CPU时间和"实时流逝"之间的延迟?》经验,为你挑选了2个好方法。

我正在使用内置的基准测试模块进行一些快速而肮脏的测试.它给了我:

CPU时间

系统CPU时间(实际上我从来没有得到任何结果与我正在运行的代码)

用户和系统CPU时间的总和(总是与我的CPU时间相同)

经过的实时

我甚至不知道我需要所有这些信息.

我只是想比较两段代码,看看哪一段需要更长时间.我知道一段代码可能比另一段更多地进行垃圾收集,但我不确定它会产生多大的影响.

我应该关注哪些指标?

而且,最重要的是,有人可以解释为什么"经过的实时"总是比CPU时间长 - 是什么导致两者之间的滞后?



1> paxdiablo..:

除了运行Ruby代码之外,系统中还有很多事情要做.经过的时间是实际采用的总时间,不应用于基准测试.您需要系统和用户CPU时间,因为这些是您的进程实际拥有CPU的时间.

例如,如果您的流程:

使用CPU运行代码一秒钟; 然后

使用CPU运行一秒钟的OS内核代码; 然后

另一个进程运行时被换掉了七秒钟; 然后

使用CPU再运行一次代码,

你会看到:

十秒钟的时间,

两秒钟的用户时间,

一秒钟的系统时间,

总CPU时间为3秒.

三秒钟是您需要担心的,因为十分完全取决于流程调度的变幻莫测.


还有另一个要注意的效果:程序花费的时间,例如,等待IO不计入CPU时间.

2> Chris Dolan..:

多任务操作系统,在等待I/O时停止,以及您编码时的其他时刻不能正常工作.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有