はじめに
この、「セキュリティ オプションの準備をしています」のメッセージは、前からネットでも話題になっています。
自分のパソコンでも表示されることがありました。最近も表示されました。ただ、これまではいろいろ対処しているうちに自然と出なくなっていましたので、特に深追いはしませんでした。
しかし、今回ばかりは、弱りました。何を行っても取れなくなり、これはまずいと思って真剣にいろいろ手を打っていました。
この記事では、自分のパソコンでの解決策について記述します。
あくまでも自分のパソコン上での対策ですので、単なるご参考としてご理解いただきたいと思います。
現象の発生
はっきり、いつから、何をしてからということはわかりません。しかし、つい一昨日あたりからです。それまでは、問題なくパソコンは動作していました。何をもってそう判断(異常な状態になったこと)したのかといいますと、次の点があったからです。
(1)パソコンのHDDからシャカシャカというか、ジィジィという音が連続的にしていて、何らかのリードライトを繰り返しているので、ウィルスに感染したかとか、Windowsの更新が走ったのかと。
(2)何かのタイミングで「セキュリティ オプションの準備をしています」と表示されて、以降全く、マウスも、キーアクションも反応しなくなった。
(3)アメバで記事を入力していて、あるタイミングからパソコンが反応しなくなり、入力ができなくなったこと。
(4)何度もシャットダウンして、再起動しても同じ結果が起こること。再起動後、しばらくは、ふつうに動作していて、アメバの記事入力ができていましたが少し時間が経つとフリーズ状態になり、操作ができなくなりました。
冷静になるため、しばらく、パソコンから離れ、別の作業をしていました。
再び、パソコンの前にもどり、何をしてからかとか、ネットで「同じ症状の記事」がないかを調べてみました。
気になるメッセージは「セキュリティ オプションの準備をしています」という表示です。これは、なんなのかと。
ネットには、確かに、これに関する記事は多くありました。Windows Updateをしてからとかで、ひとつ前の状態に戻すといいとか、USBデバイスを外して再起動するとか、いろいろ処置方法がでていましたが、現象は収まりませんでした。
タスクマネジャーを調べました。
すると、Chromeアプリのメモリ消費量が以上に高いことがわかりました。実装容量が8GBのところに3.5GBも消費していました。これが、メモリ不足の原因かと想定はできました。フリーズの原因はメモリー不足に陥っていたからかと。しかし、それ以上のことはまだ、わかりませんでした。なぜ、chromeがメモリ不足なのかということは。そこで、再度、ネットで調べると、chromeはメモリを消費するので、Edgeがいいとでていました。これで、惑わされてしまいました。では、Edgeにしてみようと、そこで、Edgeでアメバの記事入力をしてみました。確かにはじめは、スイスイ入力できました。しかし、しばらくすると同じ現象になりました。そこで、タスクマネジャーで調べてみると、これもメモリを大量消費していました。同じように3.8GBとか消費しています。
ブラウザーでは、タブをたくさん開くとメモリを消費するとでています。これは、確かのようです。正常であれば、いくら開いても3.5GBまでは行きません。3.5GBは異常な数値です。いままでも、タブはたくさん開いていても正常に動作していました。フリーズするようなことは有りませんでした。
そろそろ、原因の特定の話に入ります。
長々と、現象や試行錯誤の話をしましたが、ここで、原因の話をいたします。いつ、原因が分かったかです。
Chromeでも、Edgeでも異常にメモリを消費していたために、これは、Chromeだけの問題ではないと理解しました。それでは、何が原因で、メモリ消費が増大したのかとを考えました。今まではうまく動作していたものが、つい、最近から動作しなくなったのは、それまでと違うことをしたからかと思い、振り返ってみました。確かに、先日から、新規のプラグインを作成し、テストしていました。もしかしたらと思い、そのプラグインを外してみました。すると、アメバ入力もスイスイできます。
原因は新規のプラグインかと理解しました。
しかし、まだ、その真の原因はわかりません。そこで、プラグインのコードを調べました。今回のプラグインは、アメバの記事タイトルを白抜きで表示するものです。コード自体は全くシンプルで短いものです。
このコードが悪さをしていたとは想像しませんでした。以下はそのコードです。このコードは正常のコードです。
(function () {
let lastTitle = undefined;
function checkTitle() {
//3秒に一回、タイトルの更新をチェックしている。
if (lastTitle !== document.title) {
//
//alert("タブのタイトルが更新されました。");
$(".skinArticleTitle").css({"display":"inline-block","color":"#ffffff","font-size":"20pt",
"letter-spacing":"4px",
"text-shadow":"2px 2px 1px #003366, -2px 2px 1px #003366, 2px -2px 1px #003366,-2px -2px 1px #003366,2px 0px 1px #003366,0px 2px 1px #003366,-2px 0px 1px #003366,0px -2px 1px #003366"});
$(".ArticleHeader-title").css({"display":"inline-block","color":"#ffffff","font-size":"20pt",
"letter-spacing":"4px",
"text-shadow":"2px 2px 1px #003366, -2px 2px 1px #003366, 2px -2px 1px #003366,-2px -2px 1px #003366,2px 0px 1px #003366,0px 2px 1px #003366,-2px 0px 1px #003366,0px -2px 1px #003366"});
lastTitle = document.title;
}
//注意 setInterval()をコールしてはならない。メモリ消費してまもなくフリーズしてしまうため。
//気づかずにしていたところ、毎回、フリーズした。
//3秒に一回、checkTitle()がコールされる。
//console.log("checkTitle()がコールされました。");
setTimeout(checkTitle, 3000);
};
//alert("リロードしました。");
/***********************************************************************
* リロードする度にコールされる。
* 中で一回タイマーセットしている。
**************************************************************************/
checkTitle();
})();
問題だったのは、このコードで、setTimeout()がありますが、これをsetInterval()にしていたことです。このsetInterval()のリスナー登録がプラグインをリロードするたびに追加登録されていたため、その処理の登録のためにメモリが追加割り当てされていました。それが3.5GBまで増加した原因とわかりました。結局、setTimeout()で解決しましたが、作成当時は全く、このことに気づきませんでした。
もともとは、ネットで探したコードですが、プラグインを作成していて、迂闊にも、setTimeout()だけを見ていて、一回限りの呼び出しと思い、ここは繰り返ししたいので、setInterval()にしようと変更したのが敗因でした。よくよく、コードを見てみるとリカーシブコールなので、タブをリロードするたびに、毎回、呼び出していましたので、そのままでよかったのですが。迂闊でした。
結論
いろいろと遠回りをしてしまいましたが、何とか、原因を特定でき、対処しましたので、今はメモリも大量消費せずに、正常に動作しています。改めて振り返りますとメモリ不足になると、「セキュリティ オプションの準備をしています」とのメッセージが表示されますが、このメッセージは突然、表示されますので、その理由が「メモリ不足です」とは、表示されないため、原因の特定が遅れることになります。
「セキュリティ オプションの準備をしています」というメッセージは、いろいろな理由で表示されると思います。しかし、突然、表示されるということは、何らかの理由で表示すると思いますので、その理由を表示してもらいたいと思います。不具合の特定を速やかにするためにも。
あとがき
最近、この「セキュリティ オプションの準備をしています」というメッセージが、表示されることがたまにあります。しかし、この意味がよくわからず、シャットダウンしたり、再起動したりして、その場をしのいでいますが、どうにもならないこともあります。もうすこし、わかりやすいメッセージが欲しいと思います。
Windowsパソコンを操作していて、突然、HDDが音をたててリードライトを繰り返すと心配になります。まず、疑うのがウィルス感染で、やばいなと。後はWindowsのUpdateですが、いずれもいきなりのため、せめてWindows Updateだけでも何らかの事前メッセージがほしいですね。