一个 Turbo Boost Switcher 运行的改进方法

一个 Turbo Boost Switcher 运行的改进方法

csimbacsimba
Turbo Boost Switcher 官网 Turbo Boost Switcher for OS X

2016年8月27日更新

现 Turbo Boost Switcher 官网已推出 Turbo Boost Switcher PRO 2 版本。

新版本支持第一次配置时安装守护程序,以免除后续提权时密码输入请求。

另外新版本的自动开关 Turbo Boost 功能也得到了完善,支持黑白名单以及设置默认模式,另外可以选择是否在电池供电时关闭 Turbo Boost。

更多信息请见 Turbo Boost Switcher 官网。



原文:2016年5月25日

背景

在笔者的 Macbook Pro with 15-inch Retina Display 2013Late 机型上,笔者选装了 Intel i7-4960HQ 这款 CPU。下文的测试基于下图硬件规格:


在仅 CPU 满载的情况下,开启 Turbo Boost 时功耗可达 47 W 左右,平均睿频为 3.3 GHz,双风扇转速达到最大值约 6000 rpm。而通过 Turbo Boost Switcher 关闭 Turbo Boost 后,CPU 满载功耗大约为 30 W,CPU 频率为 2.6 GHz,此时双风扇转速大约为 3200 rpm。(室温20度左右,频率及功耗通过 Intel Power Gadget 查看,风扇转速通过 iStat Menu 查看。)

值得一提的是,若需要长时间让 CPU 满载工作例如视频编码等操作时,笔者建议打开 Turbo Boost 为好,不然 CPU 执行时间会大幅延长,相对应的高发热量时间也将延长,个人认为在这种情况下有些本末倒置。

但是,在日常操作中,尤其是当有虚拟机(笔者所用的虚拟机为 Parallel Desktop 11)在后台闲置或者看 Flash 视频时,笔者并不希望 CPU 以高频率运作。在不严谨的测试中,当有一个虚拟机在后台闲置并开启 Turbo Boost 时,相较于开启虚拟机而关闭 Turbo Boost,CPU 会时常处于 Turbo Boost 频率区间并且功耗也有明显的提高(笔者认为若只是同样负荷下,频率高低并不会对功耗有明显影响)。而当看 Flash 视频时,情况类似,举个例子,开启 Turbo Boost 时 CPU 平均功耗为约 25 W 时,若关闭 Turbo Boost,CPU 功耗可能仅为 15 W 左右,同时系统响应速度上并没有明显区别。由于功耗的降低,带来的直接好处便是双风扇旋转所带来的噪音减轻了许多。

Turbo Boost Switcher

在 OS X 10.11 中,目前最新版本的 Turbo Boost Switcher 版本为 1.2.0(也需要该版本),可以支持 Turbo Boost 状态检测及睡眠唤醒后主动重新关闭 Turbo Boost。当关闭 Turbo Boost 后,若系统进入睡眠后唤醒,Turbo Boost 会被重置为开启状态,此时 Turbo Boost Switcher 便会弹出窗口申请提权以关闭 Turbo Boost。

而数次的提权及密码输入让笔者觉得相当麻烦,需要寻找一个更加方便的方法进行 Turbo Boost 的开关。

经过简单的 Google 便可得知,在终端中输入

sudo /Applications/Turbo\ Boost\ Switcher.app/Contents/MacOS/Turbo\ Boost\ Switcher

并输入密码,便可以管理员身份运行 Turbo Boost Switcher。此时再对 Turbo Boost 进行开启或关闭并不需要用户进行提权。

在这个以管理员身份运行的 Turbo Boost Switcher 菜单中选中 Disable at Launch 后,便可在每次启动该 Turbo Boost Switcher 时直接关闭 Turbo Boost。

而此方法还不够完善,首先需要启动终端输入命令,其次需要输入密码。于是 AppleScript(脚本编辑器)便可派上用场。

tell application "Finder"

do shell script "/Applications/Turbo\\ Boost\\ Switcher.app/Contents/MacOS/Turbo\\ Boost\\ Switcher" user name "xxx" password "xxx" with administrator privileges

end tell

修改代码中 user name "xxx" password "xxx"的 xxx 为你的用户名及密码,保存为应用程序(可保存为 仅运行,以从一定程度上保护用户名及密码防止泄漏)。执行该应用程序便可以管理员身份运行 Turbo Boost Switcher 且不需要输入密码进行提权。

但是该方法还是有一个问题,在 Turbo Boost Switcher 启动后,该 AppleScript 生成的程序会保留在 Dock 栏上并阻止系统进入睡眠(sleep prevented by applet)。


于是笔者使用 Automator 进行一个流程化操作。

修改“启动应用程序”和“退出应用程序”为刚刚在 AppleScript 中的生成的程序。

修改中间的“运行 AppleScript”中的 user name "xxx" password "xxx"的 xxx 为你的用户名及密码,保存为应用程序。每当该程序,便可以管理员身份运行 Turbo Boost Switcher 后强制结束 applet。


后话

笔者目前能力仅限于通过上文方式实现以管理员身份运行 Turbo Boost Switcher,若有更好的方法欢迎在下方留言分享。

本文同时发表于笔者的网站 一个 Turbo Boost Switcher 运行的改进方法

21 条评论