cobolrt performance: benchmark vs COBOL batch volumes, then add proven fast paths

Aperta
#4,717 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
18/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
performance

Direzione di ricerca

Start by reading the cobolrt decimal arithmetic path that the issue calls the hot rule, and find where every operation builds a BigDecimal. Build the benchmark harness first, using the CardDemo batch, POSTTRAN, intcalc and mortgage ports the issue lists, and record baseline throughput and allocations. A fast path counts as done only when the unit vectors, the det sweep and the cobc differential fuzz show 0 diffs, and the A/B fuzz between fast and slow paths agrees.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement legacy-modernization priority: medium

What. Mainframe batch jobs process huge volumes. Exact decimal arithmetic with BigDecimal for every operation may be slow.

  1. Benchmark: representative batch ports (CardDemo batch, POSTTRAN, intcalc, mortgage) at realistic record counts. Measure throughput, allocations, and the hot rules (JMH where useful).
  2. Fast paths: e.g. long arithmetic when the digits fit, precomputed codecs, fewer allocations. Each fast path must be proven identical: unit vectors, full det sweep, and the differential fuzz against cobc gives 0 diffs, with an A/B fuzz between fast and slow paths.

Acceptance.

  • Benchmark harness committed, with baseline numbers.
  • At least the top hot rule has a proven fast path.
  • Before/after numbers.
  • No verdict change.

Part of the cobolrt-as-a-product epic (linked from the epic). Owner-approved direction, 2026-10-08.

🤖 Generated with Claude Code

Lingua principale
Python
Stelle
57
Fork
11
Merge medio
1h 35m
PR unite (30g)
975

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di squid-protocol/gitgalaxy

Tutte le issue di squid-protocol/gitgalaxy

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.