Windows 10/11、タスクバーの秒表示によるバッテリー駆動時間の差は2%程度という実験結果 58
ストーリー by headless
実験 部門より
実験 部門より
オプションの更新プログラムとして 24 日にリリースされたWindows 11 ビルド 22621.1778 (KB5026446) にはタスクバーの時計に秒を表示するオプションが追加されている。このオプションには「電力消費が増加します」とのただし書きが表示されるが、実際にどの程度影響があるのか Neowin の Taras Buria 氏が実験している
(Neowin の記事)。
テスト環境は Intel の第 11 世代 Core i3 プロセッサーと 16GB の RAM を搭載した HP Pavilion x360。まず、Windows 11 をクリーンインストールしたら 100% まで充電し、画面の輝度を最大に設定して機内モードを有効化。AC アダプターを取り外したらストップウォッチのみを実行して放置する。バッテリーが空になったら再び 100% まで充電して再起動し、秒表示を有効にして同じことを繰り返す。ここまでの手順を 3 回繰り返したらクリーンインストールする OS を Windows 10 に変えて同様に 3 回繰り返すといったものだ。
サンプルが少なく正確さはどの程度か不明だが、すべての回で 8 時間前後のバッテリー駆動時間が秒表示を有効にすると 8 ~ 10 分短くなっている。具体的には Windows 11 で 1.892% 短縮 (1.829% の間違いと思われる)、Windows 10 で 1.902% 短縮とのこと。他にもさまざまな要素がバッテリー駆動時間に影響するため、2% 程度の差に気付くことはないだろうと Buria 氏は述べているが、ストップウォッチの画面が表示されていることを考えると意外に大きな差ともいえる。スラドの皆さんはこれだけの差が出ると予想しただろうか。
テスト環境は Intel の第 11 世代 Core i3 プロセッサーと 16GB の RAM を搭載した HP Pavilion x360。まず、Windows 11 をクリーンインストールしたら 100% まで充電し、画面の輝度を最大に設定して機内モードを有効化。AC アダプターを取り外したらストップウォッチのみを実行して放置する。バッテリーが空になったら再び 100% まで充電して再起動し、秒表示を有効にして同じことを繰り返す。ここまでの手順を 3 回繰り返したらクリーンインストールする OS を Windows 10 に変えて同様に 3 回繰り返すといったものだ。
サンプルが少なく正確さはどの程度か不明だが、すべての回で 8 時間前後のバッテリー駆動時間が秒表示を有効にすると 8 ~ 10 分短くなっている。具体的には Windows 11 で 1.892% 短縮 (1.829% の間違いと思われる)、Windows 10 で 1.902% 短縮とのこと。他にもさまざまな要素がバッテリー駆動時間に影響するため、2% 程度の差に気付くことはないだろうと Buria 氏は述べているが、ストップウォッチの画面が表示されていることを考えると意外に大きな差ともいえる。スラドの皆さんはこれだけの差が出ると予想しただろうか。
PSR (スコア:2, 参考になる)
画面書き換えが無い状態が続くと、GPUとディスプレイ間の画像ストリーム転送を止められるから
低消費電力になる。
もっと高級なノートPCだとeDP1.4の機能でPSR2(画面の一部書き換え)をサポートしていて、マウスカーソル程度なら
GPUからの転送量を減らせるので低消費電力になる(時計でも有効)。
更に低リフレッシュレート(30Hzとか20Hz)に移行して低消費電力化するモデルもあるし、
Active syncに対応していれば、デスクトップでも低消費電力化するはず。
登載しているディスプレイ次第で、効果は大きく変わる気がします。
Re: (スコア:0)
on / off の二択なの? (スコア:2)
秒表示って表示するかしないかの二択なんでしょうか。スリープまでの時間とかと同様に、AC 接続の場合とバッテリ駆動の場合と、場合別に on / off 設定できるようにすれば、バッテリ駆動時間の問題はほぼ解消するのではという疑問があるのですが。
ググったところでは、AC 接続のイベントでレジストリ書き換えというのもそんなに難しくなさそうに見えます。
Re: (スコア:0)
MSが見て欲しくない場面だけデフォルトで非表示になる予感がする。
つうか、秒表示自体がルーズなんじゃ???
目覚めのコスト (スコア:1)
表示状態を書き換えるために寝ていたハードウェアを起こして処理させる消費があるということなのかね。
教えてエロい人。
# 今の標準的なWindowsプログラマーがどのくらいハードの動きを考慮しながら実装を試みているだろうね。
Re:目覚めのコスト (スコア:1)
そもそもちゃんと時刻表示に最適化した処理になってるのかな
60種類の表示を並べた画像をあらかじめ生成しておいて1つあたりのサイズ×秒数のオフセットを指定して転送するだけみたいな感じの
毎秒sprintfして任意のテキストを描画するためのAPIで表示させるみたいな無駄なことしてるんじゃないの
Re: (スコア:0)
え…、それ本気で言ってるなら20年くらい古いよ。
Re: (スコア:0)
君の認識が20年前なだけだよ。
今のMSはクラウドで大儲け、追加でChatGPTでジャックポット状態。
95以来のブーストかかってるぞ。
Re: (スコア:0)
ストップウォッチを起動してグルグル再描画してる条件で
たかが時計を秒単位で更新しただけで差が出るというのであれば、
ハードウェアよりもAPIやDWM周りが疑わしい気がしますね。
GetLocalTime()が重いからキャッシュする、というコードはたまに見るし、
タスクバーのレイヤを再描画するのは同居人も含めてコスト高そう。
マウスやキーボード操作をともなう普通な使い方だったら
静止状態で観測された差分はほとんど無くなるのではないでしょうか。
Re: (スコア:0)
ハードウェアもメーカーが適切に設定しなければ省エネ機能を使えないので…
Re: (スコア:0)
GPUとかですかね
なまじGPU活用する作りになってるせいで一瞬全力で動いちゃうとか
Re: (スコア:0)
他にも処理はあるので起こすほど何もしないで寝てるとは思えないけど、1分に1回やってる処理が1秒に1回になるから程度では。
他の条件 (スコア:0)
気温の変化や連続使用で排熱のためのファン稼働率変化、バッテリーの劣化や容量・残量検知の誤差なんかは無視できるのかな。
理想的には同一機種を条件数分用意して同時並行でやるのがいいかなとも思ったけれど個体差もあるだろうし。
ノートPCではなく、低スペックのファンレスPCなど使って消費電力を見るのがいいように思います。
Re: (スコア:0)
> 低スペックのファンレスPCなど使って
それはそれで確かめることは悪くないと思うけど、大多数のユーザーにとっては一般的に広く使われてる環境の方が参考にできると思うな。
様々な要因に左右されて厳密な測定はできないことはわかりきってるし、精密さを追い求めても意味がないよ。
Re: (スコア:0)
軽量化に心血を注いで開発した携帯を,
女子学生がストラップじゃらじゃらで使っていたので
脱力したという話を思い出した。
>精密さを追い求めても意味がないよ。
エ…
Re:他の条件 (スコア:1)
システムトレイに常時表示しても差は2%なのか (スコア:0)
ならシステムトレイの時計クリックしたときだけ秒数表示させるなら本当に誤差程度の違いしか出なさそうだな。
やっぱり秒数非表示に仕様変更する必要なんかなかったんじゃないかこれ?
Re: (スコア:0)
これが誤差って人もいるのか
秒数表示消すだけで2%も変わるなら消して正解だろとか思ってたんだけどw
Re: (スコア:0)
自分も2%って「マジかそこまで違うか」と思ったわ。
期待としては「ほぼ0%」で、それなら「やっぱり誤差レベルだな」と思ったところだけど。
Re: (スコア:0)
100円ショップの安デジタル時計を、(携帯)PCに張り付ける気になる程度の差はある。
Re: (スコア:0)
残念ながら100均の時計は少なくとも地元のダイソーにある時計で確認したところ、秒の表示が省かれているのでタスクバーの時計の秒の代わりにはならないんです・・・
Re: (スコア:0)
だから私はアナログ時計をモニタの下に置いています。
アナログ時計なら秒針もあるぞ
https://jp.daisonet.com/collections/electricity0107/products/4972822350266 [daisonet.com]
Re: (スコア:0)
この条件でこの程度しかないから、同じく大して変わらんなとしか思わなかった
モニタを低輝度にしたらもっと増えただろうし、重いゲーム回してたらほぼ0に近かったのでは
#世界中の消費電力が減らせる!!という利点はでかいかも
Re: (スコア:0)
秒の表示を止めるだけで、バッテリーの持ちが10分も伸びるんだよ?
2%という割合だけじゃ無くて、実際の影響も見るべき。
Re:システムトレイに常時表示しても差は2%なのか (スコア:1)
マスコミが実数を持ち出すときは割合を、割合を持ち出すときは実数を見ろという法則があったな
Re: (スコア:0)
Windows10まででもタスクバーに秒数表示してた人ならそうだけど、多分常時タスクバーに秒まで表示してた人はそんなに居ないんじゃ?
自分の場合、タスクバーには分まで表示で、秒が見たいときは時計クリックしてカレンダー引っ張りだしてた。
カレンダーのところの(秒まで表示の)時計を消したから、秒を知るには常時タスクトレイに秒数出さなきゃいけなくなった。
Windows10までと同じ仕様にしておけば、10分もの差が生じる羽目にはならなかったんじゃね?ってのが元コメの話。
Re: (スコア:0)
たぶん、「画面の輝度を最小」にして同様のテストをやれば、10分よりも遥かに大きな差が出るんじゃないかな。
一方、放置するんのではなく、いろいろなベンチマークを走らせて、例えば4時間でバッテリーが切れる状況とかだったら、
5分ぐらいの差しか出ないかもしれない(秒の表示で増加する電力が回りの状況に影響されないと仮定した場合)。
デスクトップに常時時刻を秒まで表示 (スコア:0)
TVclockっていうソフトで常時デスクトップ画面に秒まで時刻を表示しています
負荷を小さくするために、
・プロセス優先度「最低」で動作させる
・描画更新間隔を設定できる最大値にする
この2つの設定で、負荷を上げないようにしています
プロセス優先度を最低にしておくと、プロセス動作時にCPUコアのクロック周波数を上げたりしなくなるっぽい?
最近はブラウザなんかでも、非アクティブなタブはプロセス優先度を下げるように制御されてる
Re:デスクトップに常時時刻を秒まで表示 (スコア:1)
プロセス優先度「最低」って実際どうなのかな。
エンコードのような常時処理させるようなものであれば優先度下げたらその分だけ処理しなくなる=効果あるだろうと予想できる。
けど、秒針のようなたまにしか処理せずほとんどの時間スリープしてるだけ、しかも優先度下げようが上げようがやることやって省かれる処理がない、そんな状態だとな。
優先度そのままだと本業に忙しくてCPUクロック上がってるときに一緒にやって終わりだけど
優先度下げたらCPUはidleに入って休みたいのに(ほんのわずかだけど)休ませてもらえない。
そんな逆効果になって消費電力増えたり。
Re: (スコア:0)
むかしEMIclockを使ってたなぁ。
https://yuna-k.jp/ [yuna-k.jp]
Re: (スコア:0)
作者さん体壊して難儀してたりとビビった
あとWindows10対応の64bit版出ててビビった
Re: (スコア:0)
Emi Clock for Fitbitなんてものがあるのか
https://yuna-k.jp/fitbit/index.html [yuna-k.jp]
Re: (スコア:0)
TVclock、作者さんのサイト無くなっちゃったんすかねえ…
作りの問題じゃないのかな? (スコア:0)
どうもWindowsの場合
A:
割り込み回数を増やして秒を表示する。
これが原因だと思うけど
B:
タイマーチップから今の時間を表示するであれば
秒のカウントはまちまち、もしくは本体のスペックに依存するが
時間は正確に表示され消費電力も変わらない。
Bを改良すると、タイマーチップ読む回数を減らし。
割り込みカウンターから適当に内部カウントを行い表示する。
適度にタイマーチップから読む場合、遅いハードでも全体に影響は少ないと思うけど
この辺は工夫でなんとかなりそうだけどね。
Apple的に作ればBに近いのだろうと思うけど
全ては推測です。iPhoneにしてもiPadにしてもアイコンの秒針は動いてるからね。
Re: (スコア:0)
どんな方法をとろうが1秒に1回以上表示を更新する処理の実行は避けられないし割り込み以外のどういう手段でそれが実現できると思ってるの? まさかポーリングしているとでも?
Re:作りの問題じゃないのかな? (スコア:1)
PC/AT互換機の時代ならRTCはバックアップ用のもので、OS起動後のシステムクロックはインタラプトで加算していたけれど
今時のハードは違うのかしら
Re: (スコア:0)
そもそもストップウォッチが動き続けてるのにね
マイコン感覚でしゃべってる手合いがチラホラいて話が散らかり過ぎ
Re: (スコア:0)
モダンなOSはチックレスで決まった間隔で割り込みが起きるわけではないでしょう。
Windowsがどうかは知らんけど。
まあ、ソフトウェア的に管理された時刻フィールドがあるだけなのは同じですが。
Re: (スコア:0)
そもそも「時計の秒を低コストで滑らかに表示する」がOSの設計として優先度が全く高くないだろうし、
時刻表示が重要なデバイスならともかく、汎用OSで時計機能のためのAPIなんて作らないんじゃないの。
秒表示を実現するために、秒が切り替わった瞬間からなるべく早くそれを表示に反映しなきゃならないわけだけど、
専用の時計アプリであればコストを消費してチェック頻度を十分高めていいし、ミリ秒単位で画面更新するユースケースもある。
「時刻の秒が切り替わったタイミングで呼び出される」インターフェースがOSにあれば時計の秒表示は最小のコストで実装できるだろうけど。
Re:作りの問題じゃないのかな? (スコア:1)
それもうあるんですよ。SetWaitableTimerっていうAPIなんですけど。
比較に意味がない (スコア:0)
10と11の比較では意味がない。
日本語が読めない人 (スコア:0)
タレコミのどこをどう読んだらWindows 10と11を比較したと解釈できるのか純粋に興味ある
ディスプレイの前に液晶の時計を置くとよい。 (スコア:0)
ノートは腕時計を見るといい。
Windowsで時計は表示しない方がいいかもな
パワー食い過ぎ
Re: (スコア:0)
そんな頻繁に秒単位の正確な時間確認が必要な人は、高精度な電波時計とか別の手段で確認してるだろうよ
Re:ディスプレイの前に液晶の時計を置くとよい。 (スコア:1)
PCの時計で秒に精度は求めてないから表示してもしなくてもいいかな
アナログ時計表示で秒針が動いているとつい見てしまうこともあるけど
Re: (スコア:0)
PCの時計で秒に精度は求めてないから表示してもしなくてもいいかな
昔のPCは高負荷や立ちごけで止まっていないかの判断に秒表示があった方が良かったけれど
もうそんな心配は極々稀にしか起こらないですからねぇ
# Meには必須だったのかあっても意味がなかったのか難しい問題だ
Re: (スコア:0)
普通はNTPかな。電波時計はたまに豪快に狂ってくれるので信用できない…。
自分は複数のNTPサーバにつなげて平均取って精度上げる系のスマホアプリつかってる。
https://apps.apple.com/jp/app/emerald-time/id290384375 [apple.com]
テレビの時刻表示が秒なしになって久しいけど、特に不自由しなかったね。
OSのタスクバーの時計も、秒なしで特に問題無いと思う。時計クリックすれば秒まで出てくるのだし。
Re: (スコア:0)
> 時計クリックすれば秒まで出てくるのだし。
出ないんだよなぁそれが……。
去年 (スコア:0)
ウォークマンを買い替えた(OSがAndroidに変わる前の最後の世代)んだがそれまで使ってたのは
画面に時刻表示されてたのが買い替えたのは時刻表示されなくなってたな。
時計なんか飾りです、偉い人にはそれがわからんのですよ (スコア:0)
シャア
「Windowsの構造上、まったく時計を表示しなければ4%Windowsのパフォーマンスが上がるのではないのか?」
整備士
「秒表示で2%? 冗談じゃありません。応答なしになりますが現状でWindowsでCPUは100パーセント出せます」
シャア
「秒を表示してないようだが」
整備士
「時計なんて飾りです。偉い人にはそれがわからんのですよ」
シャア
「非表示についてはさっきの説明でわかるが、Windows、私に使えるか?」
整備士
「大佐の腹時計は未知数です、保証できる訳ありません」
シャア
「はっきり言う。気にいらんな」
整備士
「どうも。気休めかもしれませんが、時計ならダイソーで売ってます、うまくやれますよ」
シャア
「ありがとう。帰りに寄ってみよう」