ストップ・ザ・ワールド
ストップ・ザ・ワールド(英語:stop the world)とは、ガベージコレクションを搭載したプログラミング言語や実行環境において、ガベージコレクション発動時にプログラムがフリーズしたかのような状態になる現象のことである。ガベージコレクションが終わると何事も無かったかのようにプログラムは動きだす。
概要
ストップ・ザ・ワールドは、ガベージコレクションのアルゴリズムの多くが、自動かつ漏れなくメモリを解放するためにはメインスレッドを停止した状態で実行する必要がある、ということが原因で発生する。
ストップ・ザ・ワールドは運用中のサーバーで発生すると監視室はパニック状態になる。Javaで書かれたプログラムを、メモリをモリモリ積んだサーバーで動かすと、メモリを食い尽くすまで長い時間がかかるため、忘れた頃に一気にガベージコレクションしようとして長時間のストップ・ザ・ワールドが発生するケースが多い。ハードディスクのデフラグなどと同様に、ストップ・ザ・ワールドの停止時間は基本的にメモリの搭載量に比例するため、ITドカタに配給されるしょぼいスペックのPCで動かしている開発時点では発覚しないことが多い。
8ビットパソコンの時代に一世風靡したMS-BASIC系では1分以上もザラであり時には5分以上のストップ・ザ・ワールドも珍しくなかったが、最近ではそこまで凄いのは稀である。ただ、冗長構成を完璧に組んだサーバー群では数十秒の停止でもフェイルオーバークラスターが発動したりと一大事に発展することも多い。