日次まとめ 2025年09月20日

その他

一般

ゲーム

技術・事業・セキュリティ等

  • 欧州の主要空港でシステム障害 混乱発生、サイバー攻撃か | NEWSjp
  • Windows11のスタートアップアプリの起動を速くする方法。スタートアップフォルダにあるアプリの起動が遅くなった場合に有効 | ニッチなPCゲーマーの環境構築Z
    自分の環境が最近まさにこの症状が出始めたところだった。想定の範囲内で遅くなったんじゃなくて、数分以上かかるレベルで激遅になった。

    検索したら最近 報告数が増えているみたいですね(それでも全体の利用者数からすればたいした数ではないのかもしれないが)。

    自環境では記事にある3パターン全てを試したら、3パターン全てで効果がありました。

    ・「WaitForIdleState:0、StartupDelayInMSec:0」では爆速でスタートアップ。

    ・「WaitForIdleState:0」のみ では爆速ケースよりだいぶ遅いが、発生した異常に遅くなった症状と比較すれば待てる範疇の速度でスタートアップ。

    ・「WaitForIdleState:0、StartupDelayInMSec:1」では爆速ケースとほぼ同等にスタートアップ。


    が、対応内容を理解せずにいるまま ってのはよろしくはないので、追加で少し調査しました。

    下記関連によると、「WaitForIdleState」はログオン後のCPU負荷が落ち着くのを待つかどうか制御するためのフラグ
    (IdleStateは、直訳するとアイドル状態ですね。車とかでも使われる「アイドリング」のことと同意で、ざっくり言えば待機状態のこと。それを落ち着くって表現しているんだろう)。

    「StartupDelayInMSec」はその遅延時間をミリ秒で指定するもの・・・とあるが、これはたぶん「その(アイドル状態の待ち)」ではなく、単語通りスタートアップ(起動)に関する遅延時間の指定かも?

    関連:Windows 11でスタートアップアプリ起動が遅い原因と改善策 | IT trip


    だから自環境では「StartupDelayInMSec」が「0」でも「1」でもほぼ同等に感じたのはそりゃ1ミリ秒程度じゃ差が分からなくて当然ってことですね。

    一方で、「StartupDelayInMSec」が無くても、相応に問題が解消された理由は、
    一般的なプログラムの設計を想像するなら、無い場合は内々で既定のデフォルト値が使用されたりするんじゃないのかなと。

    下記関連を流し読みすると、今もそうかは分からないけど、少なくともある時点の設定では、デフォルト値は10000ミリ秒(10秒)で最大値は3600000ミリ秒(3600秒=60分)らしいです。

    関連:Beyond good ol’ Run key, Part 104 | Hexacorn

    実際に「StartupDelayInMSec」を未指定のケースで全部起動し終えるまでストップウォッチで計ったら約12秒だったので、デフォルト値が10秒ってのはWindows11でも同じかもれません。


    なので、少なくとも自環境でスタートアップが異常に遅くなった件については、
    「WaitForIdleState」フラグの有無が問題解消に大きく関わっている、というのは確かです。

    「StartupDelayInMSec」の指定や差異は、単純に各PCの性能や、起動するアプリの重さなどの構成の違いの影響が出ているだけですね。

    PCの性能に問題がなければ「StartupDelayInMSec」を「0」指定して起動遅延なしにしての高速起動でも問題はまず無いということになりますし、
    もともと異常が出る前から10秒以上かかっていたような環境のPCでは未指定でもおそらく効果は感じられないか場合によってはむしろ早く起動する可能性もある、って感じです。

    自環境の場合は今まで10秒もかかっていなかったので未指定にすると今までよりは遅いが、異常発生後よりは早いって感じなので、
    「10000」よりも小さい値に指定してあげると今までと同等以上の速度で調整できることになる。


    でも、ぶっちゃけ今まで何秒くらいだったか、なんて記録はしていないので、この辺はもう好みでいいだろう。

    ということで、爆速で起動されすぎると悪名高いWindows Meのユーザーだったことがある自分的には何か怖くて(これは ある種のトラウマかもしれん)、
    雀の涙 程度の差かもしれませんが、適当に「StartupDelayInMSec」は「1000」(16進数 表記で0x3E8)ミリ秒=1秒に設定しておくことにしました。

    遅延時間は多少あったほうが何かの処理やケースの時に人知れず貢献するかもしれないし・・・。



    しかし原因はなんなんでしょうねぇ・・・。

    今後、Windowsアップデートのタイミング(特に今回追加したレジストリが削除される可能性)で再発する可能性はあるし、
    やっぱり根本の対応ができていないと、あくまで対症療法になり これで終わり、とは言えないだろうから、今回の対応内容はちゃんと記録しておかないとなぁ。

隙間スキーマ をフォローする