Movatterモバイル変換


[0]ホーム

URL:


Publickey
×

JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開

2022年9月15日

メタ(旧Facebook)は、JavaScriptアプリケーションのメモリリークを検出するフレームワーク「MemLab」をオープンソースとして公開したと発表しました

We’ve open-sourced MemLab.#MemLab is a JavaScript memory testing framework that automates leak detection and makes it easier to root-cause memory leaks. 1/2https://t.co/vo6Gzv56ud

— Engineering at Meta (@fb_engineering)September 12, 2022

Metaが展開しているFacebook、Facebook Messenger、InstagramなどをWebブラウザから利用する場合、いわゆるSPA(Single Page Application)による複雑なJavaScriptコードが実行されています。MemLabはこうしたJavaScriptアプリケーションがメモリリークを起こしていないかをWebブラウザやNode.js上で検出し、その原因を分析できるフレームワークです。

fig

JavaScriptにかぎらず、アプリケーションにおけるメモリリークは、たとえ発生したとしても動作や機能にすぐに影響を与えることが少ないためテスト発見することは容易ではなく、コードレビューで発見することも簡単ではありません。

しかしメモリリークは、徐々にアプリケーションの動作を遅くしたり不安定にしたりすることでユーザー体験を大きく損なう可能性があるやっかいなものです。また、メモリリークではないものの、例えば無限スクロールでスクロールアウトしたアセットをずっと保持していることで消費メモリがどんどん増大していってしまう、といったコードも、メモリリークと同様の問題を引き起こしてしまいます。

MemLabはこうした検出の難しいメモリリークを発見し解決することを支援してくれます。

テストシナリオを実行するとメモリリークのレポートを出力

MemLabは、ターゲットとなるアプリケーションをNode.jsあるいはPuppeteer上でテストシナリオで実行すると、状態ごとのヒープの差分からメモリリークの発生を検知し、メモリリークを起こしているオブジェクトのリストや参照チェーンなどのレポートを出力してくれます。

メモリリークの検出以外にもMemLabにはJavaScriptヒープのグラフビューAPI、メモリアサーションなどの機能を備えています。

MetaはすでにMemLabを使用することでメモリ不足(Out of Memory)によるクラッシュを50%減とすることに成功しており、サービスの信頼性やユーザー体験の向上に役立ったとしています。

あわせて読みたい

JavaScriptソフトウェアテスト・品質プログラミング言語Facebook

このエントリーをはてなブックマークに追加
fbシェア
Xポスト
Feedly


≫次の記事
インシデント発生時のチーム対応を支援する「Grafana Incident」、無料でGrafana Cloudが提供。SlackやGitHubなどと連携

≪前の記事
Safari 16がリリース、パスワードレスを実現する「Passkeys」に対応。Web Push、サブグリッド、AVIF画像形式など新機能


タグクラウド

クラウド
AWS /Azure /Google Cloud
クラウドネイティブ /サーバレス
クラウドのシェア /クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript /Java /.NET
WebAssembly /Web標準
開発ツール /テスト・品質

アジャイル開発 /スクラム /DevOps

データベース /機械学習・AI
RDB /NoSQL

ネットワーク /セキュリティ
HTTP /QUIC

OS /Windows /Linux /仮想化
サーバ /ストレージ /ハードウェア

ITエンジニアの給与・年収 /働き方

殿堂入り /おもしろ /編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで :Feed

最新記事10本


feed
Feed / RSS
X/Twitter
Facebook
About us

[8]ページ先頭

©2009-2025 Movatter.jp