Movatterモバイル変換


[0]ホーム

URL:


amahisa3のブログ

Node.jsで手動GC実行を可能にする--expose-gcオプションを試してみた

Node.jsには手動でGCを実行するためのコマンドラインオプションがある。
それが--expose-gc だ!

--expose-gcのオプションを指定することで何ができるのか

--expose-gc オプションを使うと、コード内から手動でガベージコレクション(GC)を実行できるようになります。

使い方

アプリ起動時にフラグを指定

$ node --expose-gc app.js

コード内で手動GCを実行

global.gc();// この時点でGCが実行される

どんな時に使う?

大量データ処理の後にメモリを解放したい時に使うことができます。

例:

// 大量のデータを処理for(let i=0; i<1000000; i++){processLargeData(data[i]);}// 処理後、次の処理に進む前にメモリを解放global.gc();// 次の処理へnextOperation();

注意点

  • 自動GCは止まらない: 手動でGCを呼んでも、V8の自動GCは通常通り動く
  • 補助的な使い方: あくまで「自動GCに加えて」使うもの
  • 使いすぎ注意: 頻繁に呼ぶとパフォーマンスが悪化する

まとめ

通常はV8が自動で最適なタイミングでGCを実行するので不要ですが、「ここでメモリを解放したい」という明確な意図がある場合に限り、手動GCを使うことができる、というオプションです。

今回は自分のコードでベンチマークを取る際に--expose-gc というオプションを発見したのでまとめて見ました。

何かあればご指摘などコメントいただけると嬉しいです!

参考

Node.jsのドキュメント

検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp