我正在研究一个项目,该项目通过USB 3.0消耗来自FPGA硬件的数据。
现在,硬件中的缓冲区非常小,因此我非常很少的时间来消耗硬件中的数据,而又不会在硬件的FIFO中溢出缓冲区。在我的测试中,在关键线程中注入6毫秒的睡眠足以导致硬件缓冲区超限。
现在,我勉强设法使事情正常进行,同时将其固定到一个内核(事实证明,OS调度程序将我的线程从一个内核移动到另一个内核就足以导致并将其设置为最高)(我的线程优先级设置为最高)(+ 15,对应于非管理员“实时”。显然,从技术上讲,最高值为31,但是Windows权限问题更高)。
基本上,我正在尝试在Windows中进行近乎实时的操作,我意识到这不是个好主意,但是不幸的是,那艘船已经航行了。
因此,鉴于以上所述,我很想知道提高I / O优先级是否可能会有所帮助。
如何(以编程方式)增加Windows上进程的IO优先级?