UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Node.js】メモリリークを調べる

Node.jsのアプリケーションのメモリリークを調べたことがなかったので方法を調査する

2017年の記事だけどfurukawaさんの記事を参考にした
yosuke-furukawa.hatenablog.com

node-heapdump を利用してみる

何らかの事前処理を伴ってからプログラマブルに取得したいので、SIGUSR2 のシグナルを送って dump ファイルを取得するようにした

const heapdump = require("heapdump");

process.on("SIGUSR2", () => {
  heapdump.writeSnapshot("/Users/ugaboxxx/" + Date.now() + ".heapsnapshot");
});

上の実装をしてアプリを起動

ps コマンドを入力して、プロセス識別子 (pid) を検索

$ ps -ef | grep node

kill コマンドを入力して、nodeアプリ に SIGUSR2 シグナルを送信

$ kill -USR2 node_pid

これによりdumpファイルは作られていたが、Chrome の DevTools のMemoryタブからアクセスして内容を確認しようとしたところローディングが長く、いつまでたっても読み込まれなかった

理由がよくわからないので、別の方法を探すことにする