如何从 Windows XP 的批处理文件中设置处理器关联?

Posted

技术标签:

【中文标题】如何从 Windows XP 的批处理文件中设置处理器关联?【英文标题】:How to set processor affinity from Batch File for Windows XP? 【发布时间】:2010-10-24 02:05:53 【问题描述】:

我有一台双处理器机器,我想通过两个处理器上的批处理文件启动一个可执行文件。

例如: (1) 在处理器 1 上启动 Notepad.exe,然后 (2) 同时,处理器2上的Notepad.exe

目前,我在批处理文件中使用以下内容,因为我的可执行文件“难以”启动并且需要返回才能在启动时运行: echo.|DoStuff.exe

因此,我想启动它并让它在每个处理器上运行。

感谢您提供的任何反馈。

附:我不认为“开始”对我有用,因为我需要将返回字符发送到可执行文件,如上所示的 echo。

附言这是针对 Windows XP 解决方案的。谢谢。

【问题讨论】:

您可能需要重新考虑这一点。通常,CPU 调度程序会做出比您更好的决策。我们尝试了这个,实际上发现仅启动两个单独的程序后性能略有下降 【参考方案1】:

启动 /affinity 1 notepad.exe

启动/affinity 2 notepad.exe

(Windows7 对启动命令有亲和力,但 XP 没有。但 PSexec 可以工作)

【讨论】:

不幸的是我不能使用start,因为我需要使用echo.|DoStuff.exe,所以返回语句被发送到可执行文件中。有没有办法设置亲和力并发送返回语句? 如果您启动了一个批处理文件,其中包含“echo.|DoStuff.exe”?这会传递 cmd 实例的亲和力吗? 为什么 0F 没有像预期的那样使用所有 4 个处理器?【参考方案2】:

Microsoft 的 Sysinternal 的 psexec 的 -a 标志可以在 Windows XP 上设置处理器亲和性:

用法:psexec [\\computer[,computer2[,...] | @file][-u 用户 [-p psswd]][-n s][-l][-s|-e][-x][-i [会话]][-c [-f|-v]][-w 目录][-d][-][-a n,n,...] cmd [参数] -a 应用程序可以在其上运行的独立处理器 逗号,其中 1 是编号最小的 CPU。例如, 要在 CPU 2 和 CPU 4 上运行应用程序,请输入: “-a 2,4”

例如:

psexec -a 2 cmd /c "echo.|DoStuff.exe"

【讨论】:

明天会试一试。非常感谢。【参考方案3】:

This page 谈免费 您可以使用名为 XCPU 的工具 启动并设置亲和力。然而 里面的链接失效了。也许有点 谷歌搜索可以为您找到它。

还有一个类似的工具 here 调用先运行。

【讨论】:

仍然可以使用 archive.org 找到它,请参阅 web.archive.org/web/20071012053544/http://www.appliedvisual.com/… 在此处发布此内容,因为这是排名较高的 Google 搜索结果之一,因此可能对某些人仍然有用。

以上是关于如何从 Windows XP 的批处理文件中设置处理器关联?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过双击Windows XP中的html文件等任何文件夹来运行php文件?

Windows XP 如何设置打印机纸张的大小

下载了富士通OEM版Windows XP Tablet PC Edition 2005 CHS,如何安装?

xp下,如何通过命令行更新系统当前时间

Prebuild 事件在 Windows 7 中有效,在 XP 中失败

从网上下载的正版Windows XP pro with sp3 VOL 微软官方(MSDN)简体中文版 + 正版密钥 系统如何从硬盘安