我使用process.hrtime()测量nodejs事件循环,我也计算percentiles来测量间隔。 这是我的简单基准example
我已在使用CPU i7-4770的PC上运行此测试。
这是脚本在 Windows 7 上运行时的图形(相同类型的图形在OSX上): Asix X (水平) - 时间。 Asix Y (垂直) - μs(微秒)中的第90百分位延迟
当脚本在 CentOS 7/6 上运行时,这就是图形的样子: Asix X (水平) - 时间。 Asix Y (垂直) - μs(微秒)中的第90百分位潜伏期。波长约为2分钟。
正如您所看到的,Linux上的延迟通常比Windows上的延迟更大。但是,当平均延迟和高延迟数量增加时,真正的问题是周期性峰值。
我不确定这是OS,v8还是libuv问题。这种行为有什么好的解释吗?或者如何解决?