网页好读版:http://goo.gl/wlllWn
内文:
市场上不时传出某家硬件厂商恶搞竞争对手的新闻,但是此消息真实性相当难以查证,结
果大多也只是双方互相指责与澄清。Intel Compiler Patcher 这个不到 1MB 的小程式,
宣称能够去除侦测 Intel 处理器的行为,避免程式码从 Intel 编译器出来之后,降低程
式在非 Intel 处理器环境的执行表现。
1 个程式的诞生需要经历数种阶段,开发人员首先使用高阶语言撰写程式码,譬如以 C∕
C++ 撰写,有时也会因为其它需要,使用低阶组合语言撰写。程式语言的高低阶并非由执
行效果或达成功能区分,而是以其表达方式接近机器码或人类自然语言,譬如组合语言接
近机器运作方式而划入低阶,C∕C++ 接近自然语言则划入高阶。
程式码撰写完毕并无法直接使用,须交由编译器变更成机器码,硬件才能够执行。一般程
式开发过程中,开发人员通常并不会将程式码撰写于文字编辑器,而是在开发环境下撰写
。此开发环境提供函式库、即时除错、程式码建议、执行阶段追踪等功能,方便开发人员
调用。
由于当今处理器拥有多种的硬件加速功能,有时程式本身会为不同硬件准备不同的程式码
,譬如程式在支援 SSE2 指令集的 x86 处理器执行,就会使用针对 SSE2 最佳化的程式
码,若是 x86 处理器不支援 SSE2 指令集,则改采一般的程式码,执行速度就会比 SSE2
指令集加速来得慢。
市场上早已有传闻指出,Intel 编译器编译后的程式,除了会依据处理器扩增指令集的不
同,选择不同的程式码执行之外,还会侦测处理器的厂牌,藉以降低程式在它牌处理器的
表现。无论此项消息正确与否,已有开发人员撰写出修补程式,宣称能够消弥非 Intel
处理器运作表现不佳的现象。
经由 Intel 编译器编译出来的程式,会确认处理器 Vender ID 是否为 GenuineIntel,
符合则传回 1 表示布林代数的真值,其它结果则传回 0 表示假值。接着程式就以 1 或
是 0 进行判断,若为 1 则按照处理器支援那些扩增指令集,挑选适合的程式码执行,若
为 0 则一律采用最慢的程式码。
开发者 Tronix 撰写 Intel Compiler Patcher 修补程式,用以寻找电脑程式是否具备此
种判断程式码,找到后可进行修补。程式为英文接口,点选左上角 Scan 按钮即会跳出视
窗选择欲扫描资料夹,扫描后于 File List 视窗中显示清单,便可勾选想要修补的档案
,按下上方 Patch 按钮即可进行修补。
此程式默认扫描大小介于 500Byte~100000000Byte 档案,副档名包含 .exe、.dll、.ac
m、.ax、.cpl、.ocx,若要自行变更扫瞄范围,可点选 Options 进入选项页面。笔者测
试扫描 Windows 安装分割区,得出的档案数量并不多,修补 PhotoImpact X3 和 Adobe
Reader 11 也未曾出错,但电脑采用 Intel 处理器无从得知是否有加速效果。此程式在
修改前会复制 1 份档案,将档案存放于同个资料夹,附档名变更为 .orig,以便修补出
错时能够覆蓋回来。
此程式读我档案显示 2010 年,也就是大约在 5 年前就出现在网络上,近日则因 MajorG
eeks 收录又获得关注(请点选 Download@MajorGeeks 字样)。近年也曾传出消息,表示
Intel 改采其它辨识方式,此修改程式无法发挥作用。任意修改程式有其风险,可能会
导致电脑毁损或是违反安装程式时签下的终端使用者授权协定,是否使用端看读者自行判
断。
心得:
QQ
商场上兵不厌诈
AuthenticAMD明年的Zen躲得了明枪
躲得了GenuineIntel的暗箭吗QQ