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

今回は「JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開」についてご紹介します。

関連ワード (不安定、展開、状態等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


メタ(旧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/2 https://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%減とすることに成功しており、サービスの信頼性やユーザー体験の向上に役立ったとしています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
パーソナルモビリティの「WHILL」が出産後の患者を病室まで自動運転で移動させる実証実験を産科病棟で開始
モビリティ
2021-06-19 15:09
オンラインRPGでAWSを学ぶ「AWS Cloud Quest」/登大遊氏はインチキネットワークの普及に取り組む/Electronの代替を狙うRust製「Tauri」ほか、2022年3月の人気記事
編集後記
2022-04-08 14:45
ONE WEDGE、サーバーレス開発支援「Serverless ONE」を提供–文科省も業務活用
IT関連
2021-02-04 19:00
熱帯地域のデータセンター、高度な冷却技術が課題–シンガポールで進む取り組み
IT関連
2023-12-13 22:53
Pendo.ioのオルソンCEOに聞く–創業の背景やPLGを成功に導く勘所
IT関連
2024-11-19 23:21
中小企業のDX 阻んでいるのは「認識の壁」
IT関連
2021-02-03 23:59
初心者でも使いやすい、Linuxの傑作「OpenMandriva」
IT関連
2023-04-19 00:29
note、DM機能を搭載へ 個別に報酬を支払える仕組みも
企業・業界動向
2021-04-08 01:57
DXの成否を左右する経営者の意識–経営者自身と他者から見た意識のギャップ
IT関連
2024-07-18 01:25
重要なカギを握る5つのテーマ–F5・ジュッド アジア太平洋・中国・日本担当シニア・バイスプレジデント
IT関連
2023-01-13 11:56
続、Publickeyが受けたDoS攻撃、これまでの経緯と対策まとめ
Cloudflare
2024-03-21 01:57
KnativeがCNCFのプロジェクトになった
IT関連
2022-03-05 14:05
AWS LambdaでRuby 3.2の利用が可能に、初のRuby 3.xサポート。Ruby 2.7のサポートは2023年12月で終了
AWS
2023-06-14 11:05
建設・建築業の半数以上が人材問題に直面–手形や現金の取引根強く、効率化が急務
IT関連
2023-06-17 23:07