You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add OG card generator to benchmark workflow and run.sh
Benchmark both HTML generator (generate.java/py) and OG card generator
(generateog.java/py) across all phases: training, steady-state, and
CI cold start. Updates workflow, local run.sh, and README.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Clears \`__pycache__/\` and JBang cache, then measures a single run. On a local machine the OS file cache still helps, so these numbers are faster than true CI.
172
220
@@ -177,6 +225,33 @@ Clears \`__pycache__/\` and JBang cache, then measures a single run. On a local
177
225
| **JBang** | ${JBANG_CI}s | Must compile source before running |
178
226
| **Python** | ${PY_CI}s | No \`__pycache__\`; full interpretation |
179
227
228
+
## OG Card Generator
229
+
230
+
### Phase 1: Training / Build Cost (one-time)
231
+
232
+
| Step | Time | What it does |
233
+
|------|------|-------------|
234
+
| Python first run | ${OG_PY_TRAIN}s | Generates SVG+PNG via cairosvg |
235
+
| JBang export | ${OG_JBANG_EXPORT}s | Compiles source + bundles Batik dependencies into fat JAR |
236
+
| AOT training run | ${OG_AOT_TRAIN}s | Runs JAR once to record class loading, produces \`.aot\` cache |
237
+
238
+
### Phase 2: Steady-State Execution (avg of $STEADY_RUNS runs)
239
+
240
+
| Method | Avg Time | Notes |
241
+
|--------|---------|-------|
242
+
| **Fat JAR + AOT** | **${OG_AOT_STEADY}s** | Fastest; pre-loaded classes from AOT cache |
243
+
| **Fat JAR** | ${OG_JAR_STEADY}s | JVM class loading on every run |
244
+
| **JBang** | ${OG_JBANG_STEADY}s | Includes JBang launcher overhead |
| **Fat JAR** | ${OG_JAR_CI}s | JVM class loading from scratch |
253
+
| **Python** | ${OG_PY_CI}s | No \`__pycache__\`; full interpretation |
254
+
180
255
## How each method works
181
256
182
257
- **Python** caches compiled bytecode in \`__pycache__/\` after the first run, similar to how Java's AOT cache works. But this cache is local-only and not available in CI.
@@ -187,14 +262,15 @@ Clears \`__pycache__/\` and JBang cache, then measures a single run. On a local
0 commit comments