How bedomagdi/probo works
PROBO evaluates JVM flag combinations against Maven test suites, uses JFR-derived runtime metrics to guide Bayesian search, and records the measured results; BOCA and random search provide alternative strategies. A separate workflow checks a selected combination across later project commits. The map includes the parser’s main stages and core helper types. Edges reflect the supplied excerpts, SOURCE INDEX references, or README; some orchestration details are documented but not directly shown in source excerpts.
Main entry points: evaluator.py Combination evaluator · run_best_flags_for_project.py Best-flag follow-up · probo.py PROBO search · AggregateTestSuite.java Suite metric aggregation
Components 18
Search strategies
- PROBO search
probo.py - BOCA search
boca.py - Random search
random_search.py - Flag space
utils.py
Test evaluation
- Combination evaluator
evaluator.py - POM JVM arguments
insert_jvm_args_in_pom.py - Experiment results
utils.py
JFR profiling
- JFR parser entry
jfr_parser/parser/src/main/java/parser/JFRParser.java - Recording discovery
jfr_parser/parser/src/main/java/parser/FileFinder.java - Suite metric aggregation
jfr_parser/parser/src/main/java/parser/AggregateTestSuite.java - Event aggregation
jfr_parser/parser/src/main/java/parser/AggregateJFRData.java - JFR event summary
jfr_parser/parser/src/main/java/parser/JFRSummary.java - Pair helper
jfr_parser/parser/src/main/java/parser/Pair.java - Triple helper
jfr_parser/parser/src/main/java/parser/Triple.java
Commit follow-up
- Best-flag follow-up
run_best_flags_for_project.py - Project commit history
commits
Other components
- Experiment user
- Maven test suite
Connections 24
- Experiment user → PROBO search: starts search
README.md - Experiment user → BOCA search: selects approach
README.md - Experiment user → Random search: selects approach
README.md - PROBO search → Flag space: uses flags
probo.py - BOCA search → Flag space: uses flags
boca.py - Random search → Flag space: samples flags
random_search.py - PROBO search → Combination evaluator: evaluates candidates
probo.py - BOCA search → Combination evaluator: evaluates candidates
boca.py - Random search → Combination evaluator: evaluates candidates
random_search.py - Combination evaluator → POM JVM arguments: sets JVM arguments
evaluator.py - Combination evaluator → Maven test suite: runs tests
evaluator.py - Combination evaluator → Experiment results: saves measurements
evaluator.py - PROBO search → JFR parser entry: extracts profile metrics
README.md - JFR parser entry → Recording discovery: discovers recordings
jfr_parser/parser/src/main/java/parser/JFRParser.java - JFR parser entry → Suite metric aggregation: processes recordings
jfr_parser/parser/src/main/java/parser/JFRParser.java - Suite metric aggregation → Event aggregation: groups events
jfr_parser/parser/src/main/java/parser/AggregateTestSuite.java - Event aggregation → JFR event summary: populates summary
jfr_parser/parser/src/main/java/parser/AggregateJFRData.java - Suite metric aggregation → Pair helper: uses pairs
jfr_parser/parser/src/main/java/parser/AggregateTestSuite.java - Suite metric aggregation → Triple helper: uses triples
jfr_parser/parser/src/main/java/parser/AggregateTestSuite.java - Experiment user → Best-flag follow-up: runs later-commit check
README.md - Best-flag follow-up → Project commit history: reads commit list
README.md - Best-flag follow-up → Maven test suite: measures configurations
README.md - Best-flag follow-up → POM JVM arguments: sets JVM arguments
run_best_flags_for_project.py - Best-flag follow-up → Experiment results: writes run results
run_best_flags_for_project.py