{
  "schema_version": "0.6.0",
  "paper_id": "identification-and-classification-of-jmh-microbenchmark-states-using-time-series-analysis",
  "page_url": "https://naser.github.io/research-publications/papers/identification-and-classification-of-jmh-microbenchmark-states-using-time-series-analysis/",
  "title": "Identification and Classification of JMH Microbenchmark States using Time Series Analysis",
  "title_variants": [],
  "authors": [
    "Tom Wallace",
    "Beatrice M. Ombuki-Berman",
    "Naser Ezzati-Jivan"
  ],
  "author_details": [
    {
      "name": "Tom Wallace",
      "orcid": "https://orcid.org/0000-0001-8936-3163",
      "profile_url": "https://dblp.org/pid/30/10824.html"
    },
    {
      "name": "Beatrice M. Ombuki-Berman",
      "orcid": "https://orcid.org/0000-0002-7296-9510",
      "profile_url": "https://dblp.org/pid/o/BeatriceMOmbukiBerman.html"
    },
    {
      "name": "Naser Ezzati-Jivan",
      "orcid": "https://orcid.org/0000-0003-1435-6297",
      "profile_url": "https://naser.github.io/"
    }
  ],
  "publication": {
    "year": 2023,
    "venue": "ACM/SPEC ICPE Companion",
    "type": "conference paper",
    "publication_date": "2023-04-15",
    "online_date": "2023-04-15",
    "print_date": "2023-04-15",
    "volume": null,
    "issue": null,
    "pages": "101-105",
    "article_number": null,
    "publisher": "ACM",
    "issn": [],
    "isbn": [],
    "crossref_type": "proceedings-article"
  },
  "publication_type": "conference paper",
  "status": "published_with_public_full_text",
  "canonical_source_url": "https://doi.org/10.1145/3578245.3584694",
  "source_record_id": "identification-and-classification-of-jmh-microbenchmark-states-using-time-series-analysis-4cd8927ea0",
  "identifiers": {
    "doi": "10.1145/3578245.3584694"
  },
  "abstract": null,
  "abstract_source": "ICPE Companion PDF reviewed; abstract paraphrased for this catalog.",
  "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 uses time-series analysis to identify and classify warmup, steady-state, and anomalous states in Java JMH microbenchmarks.",
  "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-09",
    "sources": [
      {
        "note": "ICPE Companion PDF: Matrix Profile, motifs/discords, PELT change points, Stumpy, Ruptures, and 30-iteration warmup protocol"
      },
      {
        "note": "ICPE Companion PDF: JMH/Traini benchmark corpus, state-identification workflow, anomaly rule, and reported qualitative conclusions"
      },
      {
        "note": "Author code/data repository linked by the paper"
      },
      {
        "note": "Local PDF hash verified in pdf-evidence/extraction-manifest.json"
      }
    ]
  },
  "summary": {
    "core_contribution": "The paper uses time-series analysis to identify and classify warmup, steady-state, and anomalous states in Java JMH microbenchmarks.",
    "problem": "JMH measurements can contain warmup, steady-state, and anomalous phases; default/manual warmup choices do not reliably identify when stable behavior begins (pp. 1-2).",
    "method": "Matrix Profile motif/discord analysis is applied to JMH time series with Python Stumpy and compared with PELT change-point detection using Python Ruptures. RQ1 compares Matrix Profile minimum/maximum/mean for 497 steady-state and 235 non-steady-state forks using an unequal-variance two-sample t-test. RQ2 uses mean/standard-deviation anomaly heuristics and treats the first 30 iterations as warmup. RQ3 scores change points falling inside motif/discord windows (pp. 2-4).",
    "findings": "RQ1 reports statistically significant differences (p < .05): steady-state benchmarks have lower Matrix Profile minimum, maximum, and mean. Matrix Profile identifies isolated spikes but can miss anomalies dominating most of a series. In the RQ3 table, 305 steady-state cases are split into 123 none/123 potential/59 noticeable correlations; 185 non-steady cases are split into 44/93/48 (pp. 3-4).",
    "limitations": "RQ2 is explicitly qualitative; the paper warns of Matrix Profile blind spots and possible errors/inconsistencies in the Python translation of the reference steady-state detector. JVM version, hardware, and OS details for the benchmark corpus: unknown.",
    "future_work": "Compare window sizes, classification functions, and larger numbers of motifs/discords; compare with industry-standard approaches (pp. 3-4)."
  },
  "tags": [
    "performance-analysis",
    "performance-engineering",
    "anomaly-detection",
    "machine-learning"
  ],
  "keywords": [
    "Java Microbenchmark Harness",
    "JMH",
    "benchmark states",
    "steady state",
    "warmup",
    "Matrix Profile",
    "motifs",
    "discords",
    "PELT",
    "change points",
    "Stumpy",
    "Ruptures",
    "time-series analysis"
  ],
  "versions": [
    {
      "id": "published-version",
      "label": "Published version",
      "relation": "version-of-record",
      "title": "Identification and Classification of JMH Microbenchmark States using Time Series Analysis",
      "url": "https://doi.org/10.1145/3578245.3584694",
      "pdf_url": null,
      "status": "published",
      "canonical_for_citation": true
    },
    {
      "id": "public-full-text",
      "label": "Public full text",
      "relation": "source-record",
      "title": "Identification and Classification of JMH Microbenchmark States using Time Series Analysis",
      "url": "https://research.spec.org/icpe_proceedings/2023/companion/p101.pdf",
      "pdf_url": "https://research.spec.org/icpe_proceedings/2023/companion/p101.pdf",
      "status": "public_full_text",
      "canonical_for_citation": false
    }
  ],
  "access": {
    "status": "published_with_public_full_text",
    "note": "The DOI is the canonical citation target; the public full-text or author-manuscript link is external and the PDF is not redistributed here.",
    "license": null
  },
  "resources": {
    "code": "https://github.com/Tom-Wallace/patternReader",
    "data": null,
    "slides": null,
    "demo": null
  },
  "citation_guidance": {
    "when_to_cite": "Cite this paper when your work uses or compares matrix Profile motifs/discords as a time-series method for identifying JMH steady-state structure and isolated anomalies.",
    "points": [
      "For Matrix Profile motifs/discords as a time-series method for identifying JMH steady-state structure and isolated anomalies.",
      "For a direct empirical comparison between Matrix Profile statistics and PELT change points on steady versus non-steady JMH forks.",
      "For the reported caution that Matrix Profile can miss sustained anomalies and that the RQ2 evaluation is qualitative."
    ],
    "canonical_version_id": "published-version"
  },
  "provenance": {
    "metadata_verified_on": "2026-08-09",
    "metadata_source": [
      "ICPE Companion PDF: Matrix Profile, motifs/discords, PELT change points, Stumpy, Ruptures, and 30-iteration warmup protocol",
      "ICPE Companion PDF: JMH/Traini benchmark corpus, state-identification workflow, anomaly rule, and reported qualitative conclusions",
      "Author code/data repository linked by the paper",
      "Local PDF hash verified in pdf-evidence/extraction-manifest.json"
    ],
    "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-09"
  }
}
