Tec*_*ics 1 windows data-processing thread-state
我试图确定IO操作完成时切换线程的大致时间延迟(Win 7,Vista,XP).
我(我想)知道的是:
a)线程上下文切换本身在计算上非常快.(通过速度非常快,我的意思是通常的方式下1毫秒,甚至在1us的-假设一个比较快,卸载机等)
b)循环时间片量子大约为10-15ms.
我似乎无法找到的信息是关于(高优先级)线程变为活动/信号的典型延迟时间 - 例如,通过同步磁盘写入完成 - 并且该线程实际上再次运行.
例如,我至少读过一个地方,所有非活动线程都保持睡眠状态,直到~10ms系统量程到期,然后(假设它们已准备就绪),它们几乎同步地重新激活.但在另一个地方,我读到线程完成I/O操作与激活/发信号并再次运行之间的延迟是以微秒为单位,而不是毫秒.
我的询问背景与从高速摄像机捕获和连续流写入SSD阵列的SSD有关,除非我可以在先前的写入完成后在1ms以内完成新的写入(如果在平均1/10ms),这将是有问题的.
任何有关此问题的信息都将非常受欢迎.
谢谢,大卫
线程上下文切换的成本在2,000到10,000 cpu周期之间,因此需要几微秒.
当线程在同步句柄上阻塞信号完成时,I/O完成很快.这使得Windows线程调度程序暂时提升了线程优先级.这反过来又可能(但不能保证)被选为获得处理器喜爱的线程.所以这通常是微秒,而不是毫秒.
请注意,磁盘写入通常会通过文件系统缓存.这使得WriteFile()调用一个简单的内存到内存副本,不会阻塞该线程.它以内存总线速度运行,每秒5千兆字节以上.然后以懒惰的方式将数据写入磁盘,线程不会因此而涉及或延迟.当文件系统缓存填充到容量并且您不使用重叠I/O时,您将只会慢速写入.如果您编写视频流,这肯定是可能的.RAM的数量有很大的不同.并且SSD控制器不是一样的.没有什么可以预先说明的,你必须测试.
| 归档时间: |
|
| 查看次数: |
884 次 |
| 最近记录: |