Module: HeapScope::Diagnostics

Defined in:
lib/heapscope/findings.rb

Overview

Stable diagnostic codes. Each finding separates facts, derived behavior, hypothesis, and suspected cause — never collapsed into fake certainty.

Constant Summary collapse

CODES =
{
  "HS001" => {
    id: "HS001",
    name: "persistent_class_growth",
    title: "Persistent object population growth",
    default_severity: :medium
  },
  "HS002" => {
    id: "HS002",
    name: "high_retention_ratio",
    title: "High retention ratio after workload",
    default_severity: :high
  },
  "HS003" => {
    id: "HS003",
    name: "thread_local_retention",
    title: "Thread-local retention pattern",
    default_severity: :high
  },
  "HS004" => {
    id: "HS004",
    name: "unbounded_collection",
    title: "Unbounded collection growth candidate",
    default_severity: :high
  },
  "HS005" => {
    id: "HS005",
    name: "callback_accumulation",
    title: "Callback or subscriber accumulation",
    default_severity: :medium
  },
  "HS006" => {
    id: "HS006",
    name: "closure_retention",
    title: "Proc/closure retention candidate",
    default_severity: :medium
  },
  "HS007" => {
    id: "HS007",
    name: "poor_gc_recovery",
    title: "Poor recovery after forced GC",
    default_severity: :medium
  },
  "HS008" => {
    id: "HS008",
    name: "baseline_regression",
    title: "Memory retention regression vs baseline",
    default_severity: :high
  },
  "HS009" => {
    id: "HS009",
    name: "high_allocation_pressure",
    title: "High allocation pressure (churn)",
    default_severity: :low
  },
  "HS010" => {
    id: "HS010",
    name: "native_memory_mismatch",
    title: "RSS growth without matching Ruby heap growth",
    default_severity: :medium
  }
}.freeze