高分辨率调用是否在函数返回时使系统时间错误?

ojb*_*ass 4 c time

给定一个以请求当前时间的最高优先级运行的C进程,返回的时间是否根据代码返回用户进程空间所花费的时间进行调整?你拿到它时过时了吗?作为一种测量,在循环中获取已知数量的汇编指令的执行时间,并询问它之前和之后的时间可以给出误差的近似值.我知道这一定是科学应用中的一个问题吗?我不打算在不久的将来随时编写涉及任何超级碰撞器的软件.我已经阅读了一些关于这个主题的文章,但它们并没有表明是否进行任何修正以使得给你的时间略早于系统读入的时间.我是否应该在其他事情上失眠?

Mic*_*ael 6

是的,他们几乎肯定是"错误的".

对于Windows,计时功能不考虑转换回用户模式所需的时间.即使考虑到这一点,在捕获返回值之前,如果函数返回,并且您的代码遇到页面错误/被换出/等等,它也无法纠正.

一般来说,在计时时你应该围绕大量的迭代捕捉开始和结束时间,以消除这些不确定性.