雑にターボブーストのON/OFFを切り替えるよ

レジストリ操作を伴うので自己責任で!

数日前からBOINCでRosetta@Homeを回し始めました。
そしたら寝てるときのCPUファンの騒音に耐えきれなかったので寝るときだけターボブーストを切ってファンが高速で回らないレベルの速度でこなして貰うことにしました。

現行型ではわかりませんが少なくともHaswell世代であるi7-4790KではWindowsの電源オプションからCPUの最大クロックを100%から99%にすることによってターボブーストを無効化することが出来ました。これを利用して雑にpowercfgを叩いてターボブーストを切り替えてみることにします。

非常にわかりやすくて確実なコマンドがあったので参考(ほぼ丸パクリ)しました
powercfgコマンドでちょっとハマったのでメモ – Qiita

簡単に言えば現在の電源オプションのCPU最大クロックを変更、変更したオプションを反映させています。
窓のファイル名を指定して実行で完結できるようにワンライナー化したのが以下です。

cmd /c "powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 100 & powercfg /SETACTIVE SCHEME_CURRENT"

で有効化

cmd /c "powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 99 & powercfg /SETACTIVE SCHEME_CURRENT"

で無効化です。
これをどうやって実行しようかなって思ったところでコマンド叩くのは面倒、Let’s noteの電源管理ユーティリティでもあれば便利かなって思った物の常駐系の管理ツールがすぐでてこなかったのでとりあえず保留です。
オーディオ出力切り替えといい電源オプション設定といい雑に切り替える常駐ツール書いたら幸せになれそうな気がしてきました。

今回はたまたまデスクトップの右クリックメニューに登録できるって言う話を耳にした
デスクトップ上で電源プランの選択オプション開く – Windows 10
のでそちらでやりました。
vbsショートカットは今からVBS覚えたくなかったのとデスクトップにいろいろ起きたくなかったので忘れたことにしました。

右クリックメニュー(コンテキストメニュー)のカスタムについては非常にいい記事があったのでそちらをオススメします。
あなただけの右クリックで、ストレスフリーな開発を。(コンテキストメニュー編集マニュアル) – Qiita

ここの8章のようにCURRENT_USERでも同様な効果が得られるためこちらを強く推奨しておきます(そっち壊したところで他のユーザーは巻き込まないため)僕はやってから気づきましたが面倒なので直してません…

書くのは面倒なのでregファイルだけ置いておきます。CLASSES_ROOTをCURRENT_USERに置き換えれば多分OKです

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\TBSelect]
"Icon"="powercpl.dll"
"MUIVerb"="ターボブースト設定(&T)"
"Position"="bottom"
"SubCommands"=""

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\TBSelect\shell]

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\TBSelect\shell\Disable]
"MUIVerb"="無効(&D)"
"icon"="powercpl.dll"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\TBSelect\shell\Disable\command]
@="cmd /c \"powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 99 & powercfg /SETACTIVE SCHEME_CURRENT\""

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\TBSelect\shell\Enable]
"icon"="powercpl.dll"
"MUIVerb"="有効(&E)"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\TBSelect\shell\Enable\command]
@="cmd /c \"powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_PROCESSOR PROCTHROTTLEMAX 100 & powercfg /SETACTIVE SCHEME_CURRENT\""

出来るとページ上部にはった感じになります。まあ切り替え時にDOS窓が一瞬だけ出るけどまあこればかりはどうにもならない気がするので諦めましょう…

コメントする

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください