GoogleはJavaScriptアプリケーションのヒープを調べてメモリリークを検出するLeak Finderをオープンソースにした。
JavaScriptはガベージコレクションを利用するのでC++のような言語で発生する普通のメモリリークは発生しない。しかし、使っていないオブジェクトがメモリを確保している場合、アプリケーションはメモリリークを抱えていると考えられる。このリークによって性能が低下したりアプリケーションが動かなくなる場合がある。
JavaScriptでメモリリークが発生する可能性があるのは循環参照だ。特にクロージャが使われた場合だ。Leak Finderはクロージャがリークを発生させたのを検知し、開発者に警告を発生して問題のコードを示す。Leak Finderはヒープ上でGoogle Closureのgoog.Disposableオブジェクトを探し、dispose()メソッドが呼ばれたどうかを検査し、イベントリスナが解放されているかどうかを確かめる。goog.DisposableオブジェクトはDOMオブジェクトへの参照を保持している場合、メモリが解放されていないことになる。
現在、Leak FinderはClosuresを使う。しかし、他のライブラリを使うように構成することもできる。Closuresはオープンソースライブラリでウィジェットやイベントフレームワーク、DOMを操作するためのツールや単体テストフレームワーク、アニメーションツールなどを含む。GMail、GDoc、GMapなどのGoogleのサービスで幅広く使われている。
また、Chrome 21以上のバージョンではリモートデバッキングと開発ツールを使ってコードの分析ができるはずだ。
Googleは過去にも多くのJavaSciptのツールをオープンソースにしてきた。コンパクトで高性能のコードを生成するClosure Compiler、動的にHTMLを生成するClosure Templates、JavaScriptのスタイルチェッカーであるClosure Linter、CSSの拡張であるClosure Stylesheetsなどだ。JavaScriptアプリケーションを作るためのツールキットであるGWTは6月にリリース候補版になったが、GoogleはGWTの開発者にDartへの移行させているので将来の計画はわからない。この移行は“エンドユーザにより良いウェブアプリを提供するというGWTのミッションの野心的な進化であり、私たちはこの移行について楽天的です”