每天一个知识点:调整进程优先级

7,311次阅读
没有评论

共计 971 个字符,预计需要花费 3 分钟才能阅读完成。

有天,老板突然说他想要调整下服务器上进程的优先级,看看会不会有更好的性能表现?让我调研一下在 windows 机器上怎么实现?

一听是调研,那不是轻车熟路。熟练的打开 Google,输入“修改进程优先级”,回车!

每天一个知识点:调整进程优先级

啊这 … 全是 Linux 相关的文章。一点不慌,加上关键词“Windows”,再搜一次。

每天一个知识点:调整进程优先级

Easy,分分钟搞定一个需求。不仅有 UI 版本,还有命令行版本。

Windows 的进程优先级

根据官方文档的介绍,一共有下面 8 个级别。
每天一个知识点:调整进程优先级

修改优先级的方法

方法一:通过任务管理器,修改进程优先级

每天一个知识点:调整进程优先级
如图所示,非常的简单,只要在“详细信息”找到对应的进程,右击“设置优先级”即可。修改后的优先级只能是提供的 6 种之一。

方法二:通过命令行修改

wmic process where ProcessId={pid} CALL setpriority "{prio}"

按上面的命令,将 {pid} 替换成目标进程 id,{prio}替换成优先级。

prio 的枚举如下:

prio 含义
realtime 实时
normal 正常
idle
high priority
below normal 低于正常
above normal 高于正常

方法三:Python 代码

需要 python3, 依赖模块 pywin32。

import win32api,win32process,win32con
 
# 处理优先级常量
ABOVE_NORMAL_PRIORITY_CLASS   = 0x00008000
BELOW_NORMAL_PRIORITY_CLASS   = 0x00004000
HIGH_PRIORITY_CLASS           = 0x00000080
IDLE_PRIORITY_CLASS           = 0x00000040
NORMAL_PRIORITY_CLASS         = 0x00000020
REALTIME_PRIORITY_CLASS       = 0x00000100
 
# 获得进程句柄
hProcess = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, pid)
 
# 设置进程优先级
win32process.SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS)
 
# 关闭进程句柄
win32api.CloseHandle(hProcess)

老板:嗯,干的不错。我现在想改 IO 优先级。

我: (╯‵□′)╯︵┻━┻

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-14发表,共计971字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)