【发布时间】:2012-03-06 04:53:05
【问题描述】:
众所周知,秒表可能会在将在所有内核上运行的多线程异步应用程序中出现问题。
在多处理器计算机上,线程运行在哪个处理器上并不重要。但是,由于 BIOS 或硬件抽象层 (HAL) 中的错误,您可以在不同的处理器上获得不同的计时结果。要为线程指定处理器亲和性,请使用 ProcessThread.ProcessorAffinity 方法。
有什么方法可以让我获得一些可靠的滴答/时间戳,例如具有高分辨率/准确度的值,并且在 cpu 内核之间保持一致?
如果无法使秒表(QueryPerformanceCounter) 多核安全,那么获得跨核良好时间戳的下一个最佳方法是什么? DateTime.UtcNow.Ticks 还是 Environment.TickCount?还有其他柜台吗?
我确实需要比 DateTime.UtcNow.Ticks 提供的更好的分辨率。 (10-15ms)
【问题讨论】:
标签: .net performance stopwatch