gaggitのブログ

コーディング、ガジェット、TIPS関連、FX

JavaScriptの実行が遅くなる 推定原因&調査中

IE11でJavaScriptを実行中、数時間後にエラーが出力されることもなく、無言で停止した。しかもデバッガーを使用していると、かなり速く停止する。また、今週初めから「Javaパフォーマンス」読んでいてふと気がついた。もしかして、メモリがガーベジコレクトされていない?私の認識では、変数にnullを設定すればガーベジ、関数が終了するとガーベジぐらい。また、実装依存で、いつガーベジされるか不明ぐらい。ネットの情報では 関数の再帰的呼び出しはメモリに残るとのこと。

対応方法を考えてみました。

1.再帰的呼び出しのコードを極力、最小限に押さえる。

2.明示的に変数にnullを設定する。

3.window.CollectGarbageを使用して、半強制的にガーベジする。

抜本的に解決するには、1.だと思いますが、3.を併用してみたい。

 

今日もがじがじっと~♪