{
  "schema_version": "0.6.0",
  "paper_id": "efficient-heap-monitoring-memory-leak-root-cause",
  "page_url": "https://threadslab.org/research-publications/papers/efficient-heap-monitoring-memory-leak-root-cause/",
  "title": "Efficient Heap Monitoring Tool for Memory Leak Detection and Root-cause Analysis",
  "title_variants": [],
  "authors": [
    "Vahid Azhari",
    "Simar Bhamra",
    "Naser Ezzati-Jivan",
    "Francois Tetreault"
  ],
  "author_details": [
    {
      "name": "Vahid Azhari",
      "orcid": null,
      "profile_url": null
    },
    {
      "name": "Simar Bhamra",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/311/1517.html"
    },
    {
      "name": "Naser Ezzati-Jivan",
      "orcid": "https://orcid.org/0000-0003-1435-6297",
      "profile_url": "https://threadslab.org/"
    },
    {
      "name": "Francois Tetreault",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/288/0256.html"
    }
  ],
  "publication": {
    "year": 2021,
    "venue": "2021 IEEE International Conference on Big Data (BigData)",
    "type": "conference paper",
    "publication_date": "2021-12-15",
    "online_date": null,
    "print_date": "2021-12-15",
    "volume": null,
    "issue": null,
    "pages": "3020-3030",
    "article_number": null,
    "publisher": "IEEE",
    "issn": [],
    "isbn": [],
    "crossref_type": "proceedings-article"
  },
  "publication_type": "conference paper",
  "status": "published_metadata_record",
  "canonical_source_url": "https://doi.org/10.1109/BigData52589.2021.9671473",
  "source_record_id": "efficient-heap-monitoring-tool-for-memory-leak-detection-and-root-cause-analysis-aa8c14efd1",
  "identifiers": {
    "doi": "10.1109/BigData52589.2021.9671473"
  },
  "abstract": null,
  "abstract_source": "OpenAlex abstract metadata reviewed; publisher abstract not reproduced because reuse permission was not established.",
  "abstract_available": false,
  "scholar_eligibility": {
    "eligible": false,
    "basis": "not-eligible",
    "note": "The page is a discovery record; it does not claim Google Scholar article-host eligibility."
  },
  "description": "The paper presents a low-intrusion heap monitor that records allocation call stacks and uses persistent heap-growth filtering plus trace correlation to identify likely memory-leak roots.",
  "evidence_level": "full-text-reviewed",
  "evidence": {
    "source_basis": "full-text-reviewed",
    "coverage": "material paper sections",
    "summary_origin": "AI-assisted catalog editorial summary",
    "review_status": "catalog-reviewed; paper-author approval pending",
    "verified_on": "2026-08-26",
    "sources": [
      {
        "note": "Local PDF reviewed, including interposition design, filtering, trace integration, use cases, and overhead/precision results"
      },
      {
        "note": "IEEE DOI record: https://doi.org/10.1109/BigData52589.2021.9671473"
      },
      {
        "note": "IEEE Xplore record: https://ieeexplore.ieee.org/document/9671473/"
      }
    ]
  },
  "summary": {
    "core_contribution": "The paper presents a low-intrusion heap monitor that records allocation call stacks and uses persistent heap-growth filtering plus trace correlation to identify likely memory-leak roots.",
    "problem": "Long-lived C/C++ services can accumulate leaked allocations gradually, while repeated heap snapshots and tools such as Valgrind, ASAN, or LSAN can impose high overhead or require a special build and end-of-run analysis. Developers also need a causal view from leaked bytes to allocation sites.",
    "method": "An LD_PRELOAD library intercepts malloc, calloc, realloc, and free. A single heap-walker thread periodically gathers lightweight statistics; allocation headers retain call-stack information, and a shared-memory command-line interface controls the monitor. The Minimum Envelope filter removes transient jumps and dips to isolate persistent upward active-heap trends in bytes or block counts. JSON Google Trace Event output is imported into Trace Compass and correlated with LTTng kernel events; Sankey and call-graph views aggregate allocation stacks, while age-based and minimum-envelope views expose persistent allocations.",
    "findings": "The paper reports 5–12% CPU overhead and less than 10% heap-memory impact in its stated implementation. Synthetic leak probabilities of 0.1, 0.01, 0.001, and 0.0001 over 60-minute runs converge within 10% of the nominal rate, with approximately 91% precision in the reported evaluation. Industrial nested-call, binary-search-tree, and linked-list cases illustrate root-cause localization; at a 0.001 leak probability, Valgrind leak-check=full is reported at roughly six times native CPU cost.",
    "limitations": "The quantitative evidence combines synthetic leak injection with a limited industrial example, and threshold selection affects persistence detection and false positives. The paper calls for 90–100 additional runs to strengthen precision estimates and notes that source-file and line rendering in the call graph needs improvement.",
    "future_work": "Run larger production-like studies, quantify recall and time-to-detection under allocator and concurrency variation, improve source mapping and threshold calibration, and evaluate false-positive control when legitimate caches or workload phases grow the heap persistently."
  },
  "tags": [
    "resource-analysis",
    "anomaly-detection",
    "performance-analysis",
    "system-tracing"
  ],
  "keywords": [
    "heap monitoring",
    "memory leaks",
    "root-cause analysis",
    "memory management",
    "BigData 2021"
  ],
  "versions": [
    {
      "id": "published-version",
      "label": "Published version",
      "relation": "version-of-record",
      "title": "Efficient Heap Monitoring Tool for Memory Leak Detection and Root-cause Analysis",
      "url": "https://doi.org/10.1109/BigData52589.2021.9671473",
      "pdf_url": null,
      "status": "published",
      "canonical_for_citation": true
    },
    {
      "id": "dblp-record",
      "label": "DBLP record",
      "relation": "source-record",
      "title": "Efficient Heap Monitoring Tool for Memory Leak Detection and Root-cause Analysis",
      "url": "https://dblp.org/rec/conf/bigdataconf/AzhariBET21",
      "pdf_url": null,
      "status": "public_source_record",
      "canonical_for_citation": false
    }
  ],
  "access": {
    "status": "published_metadata_record",
    "note": "DOI and DBLP metadata verify the paper identity, with an author-name expansion discrepancy recorded in the evidence report. No full text was obtained; no method or result claim is made.",
    "license": null
  },
  "resources": {
    "code": null,
    "data": null,
    "slides": null,
    "demo": null
  },
  "citation_guidance": {
    "when_to_cite": "Cite this paper when your work monitors heap growth with low-intrusion allocation interposition and call-stack root-cause views.",
    "points": [
      "LD_PRELOAD interception of allocation/free operations and a single heap walker.",
      "Minimum Envelope filtering for persistent heap-growth detection.",
      "Trace Compass/LTTng correlation and Sankey/call-graph leak localization.",
      "The reported overhead and synthetic/industrial validation boundary."
    ],
    "canonical_version_id": "published-version"
  },
  "provenance": {
    "metadata_verified_on": "2026-08-26",
    "metadata_source": [
      "Local PDF reviewed, including interposition design, filtering, trace integration, use cases, and overhead/precision results",
      "IEEE DOI record: https://doi.org/10.1109/BigData52589.2021.9671473",
      "IEEE Xplore record: https://ieeexplore.ieee.org/document/9671473/"
    ],
    "summary_written_by": "AI-assisted",
    "summary_verified_by": "full-text-grounded catalog review; author approval pending",
    "linked_preprint_record": null,
    "author_order_note": null
  },
  "batch": {
    "phase": 2,
    "batch_label": "expanded forty-paper release",
    "status": "included_in_expanded_catalog",
    "selected_at": "2026-08-28"
  }
}
