パスワードを忘れた? アカウント作成
15632937 story
Windows

Windowsタスクバーの時計の『秒』表示はパフォーマンスへの影響が大きい 148

ストーリー by nagazou
そんなに負荷がかかるものだったのか 部門より
Windowsのタスクトレイにある時計は標準では「秒」は表示されない。ただWindows 10まではレジストリを書き換えることで「秒」を表示できたが、Windows 11ではこうしたこともできなくなっているそうだ。Microsoftの公式ブログ記事によると、もともとはWindows 95時代にベータ版から製品版に仕様変更されるとき、メモリパフォーマンス改善のために秒表示を止めたという(Microsoft公式ブログPC Watch)。

現在のPCでは大容量のメモリを搭載しているが、それでも秒表示を行なわないのもパフォーマンス対策のためだという。マルチユーザーのシステムでは、複数のユーザーがタスクバーの時計の表示の更新が必要なため、100人いれば100回タスクバーの刷新が必要となる。秒表示の廃止は更新のためのCPU資源の浪費を防ぐ意味もあるという。シングルユーザーの場合も、秒表示をさせるとCPUが低電力状態になるのを阻害してしまうことが検証で判明しているとのこと。このためWindows 11では秒表示ができなくなっているとしている。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 老人の独り言 (スコア:5, おもしろおかしい)

    by Anonymous Coward on 2022年04月22日 18時32分 (#4237737)

    今の若いモンは知らんだろうが、昔はCD-Rなるメディアがあったのじゃ。
    なんとフロッピーの何百倍という容量がある、夢のようなメディアだったのじゃ。
    あ、フロッピーというメディアも若いモンは知らんか。

    昔はPCが非力だったり、CD-Rドライブにまともなバッファ制御がなかったりで
    ちょっとでも書き込み中に別の処理が入ると書き損じする事があったのじゃ。
    タスクバーの時計ですら負荷がかかるという事でタスクバーの表示すら消す
    フリーソフトなんかもあってそういうのを使ってじっと書き込みが終わるのを
    待っていたのじゃ。

    …その頃からの刷り込みでタスクバーの時計は重いという先入観が抜けきれない。

    • Re:老人の独り言 (スコア:2, 参考になる)

      by Anonymous Coward on 2022年04月22日 20時57分 (#4237823)

      今の若いモンは知らんだろうが、昔はサンドボードやデジタル・オーディオ・インターフェース・ボード(DAIボード)なるデスクトップPCのバスに挿して使う拡張ボードがあったのじゃ。
      なんとサンプリング周波数44.1kHzや48kHzでデジタル・レコーディングが出来る、夢のような拡張ボードだったのじゃ。
      あ、CDのサンプリング周波数の44.1kHzやDATのサンプリング周波数の48kHzも若いモンは知らんか。

      昔はPCが非力でも、ちょいちょいとシステム設定を変えるだけでWindodws3.1やWindows95でも同時録音再生すら安定して出来たのじゃ。 ところが今のPCはWindowsのサウンドシステムにお節介な(ソフトウェア)サンプルレート・コンバーターやミキサー機能が組み込まれていたり、オーディオ入出力をサポートしたブラウザがサウンドシステムに無駄な負荷を与えたり、USBオーディオインターフェースのUSBのクロックとA/D・D/Aのサンプリング・クロックの同期の問題のためにジッターが生じたりして、安心して高品位のオーディオ入出力をするのが難しくなっているのじゃ。(USBオーディオのクロック/サンプリング・タイミングのドリフトは馬鹿なオーディオマニアが騒いでいる水晶発振器のクロック・ジッターなどとは違って、きちんと計測をすれば違いが出る現実の大問題なのじゃ)

      今どきの若いモンは技術が退化することもあるということを理解しなければならないのじゃ。

      …そういうわけで常に最新のPCと最新のOSを求めるようなことはしない。

      親コメント
    • by Anonymous Coward on 2022年04月22日 23時00分 (#4237880)

      若いもんに、
      ・書き込みに1時間程度必要、中止はできない(電源プラグ抜きでのみ可)
      ・書き込み容量に関わらず1時間コース
      ・書き込み中にエラー検出はできない
      ・更に1時間かかるベリファイでのみエラーチェック可
      ・メディアは1回のみ書き込み可
      ・メディアは1枚1000円
      という点も教えるとドン引き

      親コメント
    • by Anonymous Coward

      シングルコアで、CPUクロックが100MHzもなかった時代ですよねぇ
      サウンドカードのI/Oにぶら下がっていてPIO制御とかだとソフトポーリングで動作していたら
      そりゃアンダーラン発生するよなぁ
      しかも当時は一枚1000円くらいしたから失敗すると泣いたものでした

  • by 90 (35300) on 2022年04月22日 17時09分 (#4237660) 日記

    長期的にWindows 365 Cloud PCに移行するために仕様を揃えたいのではなく……?

  • そのむかし、32bit時代にタスクバーに時計を表示する TCLOCK というソフトを使っていたときに、インターネットビートを表示する機能があって、それも、センチビートまで表示できた。
    ので、秒とセンチビートをともに表示していた。
    ふと数えてみたら、108秒間に233回表示更新していたはず。
    --
    ¶「だますのなら、最後までだまさなきゃね」/ 罵声に包まれて、君はほほえむ。
  • by Anonymous Coward on 2022年04月22日 18時04分 (#4237710)

    https://www.microsoft.com/ja-jp/windows-365 [microsoft.com] や今後展開していくであろうクラウドサービスで生じる「遅延」や「パケットロス」等を誤魔化すための詭弁でしょうね。
    Microsoftは今後このようなサブスクサービスで儲けようとしているわけですが、インターネット経由だとどうしても遅延が生じてしまうし、サーバーまたは通信が不安定になると、秒のカウントが飛んだりすることに繋がるので、それをばれにくいようにするためだと思われます。

    地上アナログから地デジにしたときに、時報を止めたり、時計表示を止めたり(もしくは分の切り替わりをじわじわと時間をかけて行うエフェクトで誤魔化したり)したのと同じでしょう。

    • by Anonymous Coward

      うーん、常駐時計プログラムかなんかでもって表示させれば
      遅延なんぞ速攻バレるよなぁ
      無駄な努力よ
      # まあなかなか1sec毎の表示を低負荷低ジッタでやるのは難しいのだが

  • サーバーですべて処理して端末は画面表示だけってゆうのは、
    テキスト端末からの流れだろうけど、ハードウェアも安くて高性能だし、
    端末に処理を割り振ってもいいと思う。綺麗じゃないけど。

    Webサーバで動くCGIと端末のブラウザで動くJavaScriptみたいに。
    これなら端末の時計表示なら端末で処理すればいいし。
    そうすると端末間で秒表示が違ってくるかもだけど、
    PCの時間とサーバの時間がずれてても、大事な処理はサーバの時間で処理すればいいし。

    # クラウドゲームで3Dとか誰得なんだろう。
    # 作りやすいのかな。チートが防げるか。
    # 壁の向こうのキャラの情報は端末に送らなきゃいいんじゃないの?

    • Windows的には、帯域の確保があるていど期待できるようになったので、サーバー側で描画して、クライアントは表示のみに専念できるようになったって感じだと思うよ。
      Windowsのリモートデスクトップ(RDP)は本来、GDIの命令を送ってクライアントでGDIの命令を実行するって方式。9600bpsのモデム接続でも快適とはいかなくとも十分実用レベルの性能が出せた。
      今は、帯域がある程度期待できるし、動画コーデックの性能も桁違いに上がったので、そこまで絞る必要がない。

      サーバーで負荷の高い3Dの計算してから送れば、クライアントに高性能な機器がいらないから、ハイエンドのデスクトップ並の処理を駆動時間は気にせず実行できる。
      クラウドサービスなら料金プランによって、動的に性能を変えることもできる。
      アプリのつくりやすさ変わらんけど、デプロイの容易さは変わるよね。全ユーザーに最新アプリを使ってもらいたいとき、デスクトップアプリとWEBサービスのどちらかを選ぶような話なので。

      親コメント
  • by Anonymous Coward on 2022年04月22日 17時48分 (#4237694)

    ハァ?と思ってしまった。
    パフォーマンス上の問題?そもそも、秒表示が必要だからそう設定したいのに、それが提供できないことこそ「パフォーマンス上の問題」じゃないのか?
    それでCPUが低消費電力モードに入れないってんなら、入る必要はないだろ。
    CPU資源の浪費?必要な消費では?せいぜい、秒を表示する設定をする設定UIに「秒を表示すると消費電力が増えます」と書いておけば良い話(そもそも設定UIが無いが)だろう。
    100人ユーザーがいたら100人分の更新が必要?マウスポインタも同じことが言えるんじゃない?じゃぁマウスポインタを無くしますか?
    何をたわけたことを言ってるんだ。誰のためにWindowsを作ってんの?正気?

  • 時間ベースのAuthenticatorは、せいぜい15秒くらいのズレしか許容してくれなかったと思うんだけど……

    • by Anonymous Coward on 2022年04月22日 19時33分 (#4237775)

      AD下でのログイン認証(Windows統合認証)は、5分までずれていてもOK。

      インターネット経由…Authenticator…つまり、TOTP(RFC6238)での時刻のズレの許容範囲は、認証先サーバー側の設定次第。
      30秒もしくは60秒間隔で、1、2回程度前後のトークンでも認証は可とする場合がある。

      例えば、RFC6268自身には、30秒更新で今回1回分(30秒)、過去分2回(60秒)までの時刻のずれを許容する例を示しているし、
      EPEL(Extra Packages for Enterprise Linux)に含まれるGoogle Authenticator向けPAMでは、確か最大4分までのずれを許容できるように設定できる。

      親コメント
  • by Anonymous Coward on 2022年04月22日 19時08分 (#4237754)

    Windowsって全体的にUIのフィードバックが少なくて、ちゃんと動作中なのか負荷がかかってるのか分かりづらいので、
    その確認のために時計の秒を表示してたんですけど、そういう人っていないのかな。

  • 自分のWin10までの使い方では、タスクバー自体での秒表示はいらなかったのですが、「クロック」アプリやウィジェットの時計表示まで秒表示カットされてて、「Win11はダメやんな」ってなったポイントですわ。
  • >複数のユーザーがタスクバーの時計の表示の更新が必要なため、100人いれば100回タスクバーの刷新が必要となる。

    お前さん、自分の使われ方について、理解が浅いんでないかい?
    #そもそもそういうシステムを前提としていたら全員にGUIを提供すんな

  • by Anonymous Coward on 2022年04月22日 17時10分 (#4237664)

    むしろ時計非表示にさせてほしいんだけど

    • by Anonymous Coward

      Windows10の場合。
      スタートメニュー-設定-個人用設定-タスク バー-[通知領域]システムアイコンのオン/オフの切り替え-時計
      をオフにすれば非表示になるけど?

  • by Anonymous Coward on 2022年04月22日 17時17分 (#4237666)

    枠に本物のデジタル時計を埋め込んだディスプレイを作れば売れるんじゃね?

    • by Anonymous Coward on 2022年04月22日 17時20分 (#4237669)

      鳩時計の搭載なら購入を検討したい。
      通知と連携できれば、なおのこと良し。

      親コメント
      • by Anonymous Coward

        一定時間ごとに画面から鳩が3Dで飛び出してきたら嫌だな。
        # 3Dでなくても、画面いっぱいに鳩が表示されても困る。
        # デスクトップなら物理的に内蔵可能かな。

      • by Anonymous Coward

        >通知と連携できれば
        「通信と連携できれば」と空目して、本物の鳩(伝書鳩)を使って通信させるのかと思ったよ

      • by Anonymous Coward

        カメラの小窓がパカッと開いて鳩が飛び出る?
        でもあれカッコーらしいよ。

    • by Anonymous Coward

      天才やな。
      ディスプレイポートのプロトコルで時刻合わせもしてほしい。

  • by Anonymous Coward on 2022年04月22日 17時27分 (#4237672)

    「秒表示をさせるとCPUが低電力状態になるのを阻害してしまう」などというのが本当なら、
    ソフトかハードの一方または両方が欠陥品なのでは?
    こんなこと2022年にはあり得ない言い訳だ。

    • by Anonymous Coward on 2022年04月22日 19時23分 (#4237762)

      アイドル時は省電力のためにイベント溜めたりするから、1秒毎に割り込みが有ると影響はかなり有るかと。

      親コメント
    • by Anonymous Coward

      古いハードウェアを切り捨てたら(近頃Windows 11で実証された通り)文句言うくせに。

    • by Anonymous Coward

      なんで最新ハードウェアに欠陥品の可能性があると思ったの?
      欠陥品の可能性があるのはソフトしかなくね?

      • by Anonymous Coward

        難癖付けて気持ち良くなりたいだけなんで、真面目に聞かれても困るな。

    • by Anonymous Coward

      パソコンは何億個のものトランジスタを積んだCPUで動かしてるというのに
      数石のトランジスタで作れるデジタル時計以下の仕事しかできないというのはおかしい

    • by Anonymous Coward

      だよなぁ。
      ビジーループしているわけでもあるまいし。
      ユーザが触れる設定項目を徹底的に絞りたいだけだろう。

    • by Anonymous Coward

      少し前の、タスクバーの表示位置を変更する機能の追加ができない理由もだけど、
      MSの開発者のレベルが落ちたとか、
      Windowsが古くなりすぎて基本的な変更にも耐えられなくなってきているとか、
      そういったことが起きていそうだなぁと思わされるね。

  • by Anonymous Coward on 2022年04月22日 17時32分 (#4237677)

    秒単位で描画が発生するのは確かに負荷といえば負荷だが、それ以上に他のシステムプロセスが動いてるんじゃないの?
    ログとかメッセージパッシングとか外部との通信とか。
    そういうものと比較すれば微々たるもののような気がするけどね。

    #まあMS公式ブログで言うなら本当かもしれないが…

    • by Anonymous Coward

      いやRaymond Chenの個人ブログだよ。ていうかみんな大好きOld New Thingだよ。公式ブログというのはnagazouマジックだろ

  • by Anonymous Coward on 2022年04月22日 18時12分 (#4237721)

    日時を取得するAPIはあるけど
    その変更をトリガとしたコールバックAPIは存在しない。

    だから時計の秒を表示は、毎秒10回ぐらい日時を取得して変化があったら描画するという処理になる。

    分表示は500msecに一度取得して表示更新してやれば十分実用に足るんだけど
    秒表示は500msecぐらいだと一秒の表示間隔がおかしくなって違和感がでる(きっちり500msecごとに処理できればいいんだけど、500mmsecに誤差があるのが原因)。
    なもんだから、秒の時計作ろうと思ったら100msecなど短い間隔で日時を取得してって意外にコスト使う。
    時間の変更をトリガとしたAPIが欲しい。あれば秒表示でも1秒に1回の処理ですむのに。

    #RTCから直で割り込み発生してくれ

    • by jzkey (47353) on 2022年04月22日 19時28分 (#4237767)

      Waitable Timer(SetWiatableTimerEx)使えば設定した時刻になったらAlartされるでしょ。
      それがWindowsのMessagin Loopと相性悪いといわれればそうだし、正秒からずれる上タイマ割り込みも集約(Timer Coalescing)されちゃう、といわれればそれもそうだけど。

      親コメント
    • by Anonymous Coward

      りくつはわかる。

      しかし正確な時計特化タイマーが一般に需要があるかというと…

    • by Anonymous Coward

      > #RTCから直で割り込み発生してくれ

      日時ってソフトウェアでカウントしてるんでないの?
      RTCは起動時の初期値と適度に補正値として使ってるんじゃないかと想像してる。
      そうしないとクロックのずれでミリ秒の扱いがやっかいすぎる。

    • by Anonymous Coward

      ミリ秒単位で現在時刻取得して、それが0:00:00.100なら
      900msec後に起こしてくれとタイマー設定すればいいのでは?
      ポーリングじゃあ省電力にならない。

  • by Anonymous Coward on 2022年04月22日 18時34分 (#4237739)

    アニメーションWeb広告は、タスクトレイの時計なぞ比較にならんほどCPU資源を浪費するので、
    全人類の総力を挙げて滅ぼすべきである。

typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...