Rom*_*nSt 33 windows-7 performance priority process io
Process Explorer 能够显示给定线程的有效 IO 优先级,但不能更改它。由于 IO 优先级支持是一个相对较新的特性,大多数程序不会设置自己的 IO 优先级。似乎默认情况下 IO 优先级是从线程优先级(而不是进程优先级)派生的,Process Explorer 也无法修改。
是否有其他工具可以帮助我更改给定线程/给定进程的所有线程的 IO 优先级?
小智 24
我在看到没人打扰之后开发了这个:https : //sourceforge.net/projects/iopriority/(开源)
该程序能够设置进程的 I/O 优先级,所有线程都会立即受到它的影响。修改它以使用线程而不是进程非常容易。
dya*_*sta 12
现成的工具
通过手动用户操作或自动化和持久性设置进程 I/O 优先级的第三方工具将是Process Lasso。它几乎可以设置任何进程设置,并且可以持久地或按规则进行(例如,当发生这种情况时,更改其 I/O 优先级)。
程序化答案
答案是对 NT Native API NTSetInformationProcess的简单 API 调用。它在 2008 DDK 中被定义为“IoPriority”类。在 NT6 中只支持两个级别:非常低(背景)和正常。技术上定义了 5 个级别——严重、高、正常、低和非常低。临界级别是为分页操作保留的。其他的没有数据。
但是,使用 I/O 优先级的正确方法只是通过调用 Windows API SetProcessPriorityClass来启动“后台模式” ,提供 PROCESS_MODE_BACKGROUND_BEGIN。这将导致它使用非常低(后台)I/O 优先级以及空闲 CPU 优先级类。完成后,通过 PROCESS_MODE_BACKGROUND_END 恢复。
该SetThreadPriority函数API也将允许特定的线程此相同的背景模式。在这里,您需要提供 THREAD_MODE_BACKGROUND_BEGIN/END。
| 归档时间: |
|
| 查看次数: |
55667 次 |
| 最近记录: |