mcpField
M
memory-leak-detection

memory-leak-detection

github.com/aj-geddes開発373583 回インストール34 週間前に更新
リポジトリ

memory-leak-detection について

メモリリークの特定と修正を支援する開発者向けガイドです。メモリ使用量の増加、OOM、性能低下などを扱い、Node.jsとPythonの分析資料を含みます。

主な機能

  1. 01Node.jsのヒープスナップショット
  2. 02一般的なリークパターンの特定
  3. 03ミドルウェアによるリーク検出
  4. 04Pythonのメモリプロファイリング
  5. 05WeakMapとWeakRefによるキャッシュ管理

活用シーン

  1. 01増え続けるメモリ使用量の調査
  2. 02OOMエラーの診断
  3. 03性能低下の調査
  4. 04本番環境のメモリ監視

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill memory-leak-detection

インストール後、Claude Code で/memory-leak-detectionを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
common-memory-leak-patterns.md
memory-leak-detection-middleware.md
memory-monitoring-in-production.md
nodejs-heap-snapshots.md
python-memory-profiling.md
weakmapweakref-for-cache.md
scripts/
validate-config.sh
templates/
config-starter.yaml

詳細

メモリリークの検出

目次

概要

メモリリークを特定して修正し、メモリ不足によるクラッシュを防止するとともに、アプリケーションのパフォーマンスを最適化します。

使用する場面

  • メモリ使用量が時間とともに増加している
  • メモリ不足(OOM)エラーが発生する
  • パフォーマンスが低下している
  • コンテナーが再起動する
  • メモリ消費量が多い

クイックスタート

最小限の動作例:

import v8 from "v8";
import fs from "fs";

class MemoryProfiler {
  takeSnapshot(filename: string): void {
    const snapshot = v8.writeHeapSnapshot(filename);
    console.log(`Heap snapshot saved to ${snapshot}`);
  }

  getMemoryUsage(): NodeJS.MemoryUsage {
    return process.memoryUsage();
  }

  formatMemory(bytes: number): string {
    return `${(bytes / 1024 / 1024).toFixed(2)} MB`;
  }

  printMemoryUsage(): void {
    const usage = this.getMemoryUsage();

    console.log("Memory Usage:");
    console.log(`  RSS: ${this.formatMemory(usage.rss)}`);
    console.log(`  Heap Total: ${this.formatMemory(usage.heapTotal)}`);
    console.log(`  Heap Used: ${this.formatMemory(usage.heapUsed)}`);
    console.log(`  External: ${this.formatMemory(usage.external)}`);
// ... (see reference guides for full implementation)

リファレンスガイド

詳細な実装については、references/ ディレクトリを参照してください。

ガイド内容
Node.js ヒープスナップショットNode.js ヒープスナップショット
メモリリーク検出ミドルウェアメモリリーク検出ミドルウェア
一般的なメモリリークのパターン一般的なメモリリークのパターン
Python メモリプロファイリングPython メモリプロファイリング
キャッシュ向けの WeakMap/WeakRefキャッシュ向けの WeakMap/WeakRef
本番環境でのメモリ監視本番環境でのメモリ監視

ベストプラクティス

✅ 推奨事項
  • 使用後はイベントリスナーを削除する
  • タイマーとインターバルをクリアする
  • キャッシュには WeakMap/WeakRef を使用する
  • キャッシュサイズを制限する
  • 本番環境でメモリを監視する
  • 定期的にプロファイリングする
  • テスト後にクリーンアップする
❌ 避けるべきこと
  • 循環参照を作成する
  • 大きなオブジェクトへの参照を不必要に保持する
  • リソースのクリーンアップを忘れる
  • メモリ使用量の増加を無視する
  • オブジェクトキャッシュで WeakMap を使用しない

コメント