Perf ce58599
JSONata cross-engine results¶
Source data: CSV.
Scores are throughput in ops/s (higher is faster). Ratios compare Branchline throughput to the fastest JSONata engine. Rows require comparable state and no credibility flag before they count toward speedup summaries.
Dashjoin outliers are excluded from the summary and breakdown (outside 0.01x–100x Dashjoin median).
Branchline speedup summary¶
Counts include cases where both engines have scores, comparable state, and no credibility flag. Speedup is Branchline ops/s divided by Dashjoin ops/s.
| Comparison | Faster cases | Total cases | Avg speedup (faster cases) | Max speedup |
|---|---|---|---|---|
| Interpreter vs Dashjoin | 10 | 10 | 23.659x | 223.862x |
| VM vs Dashjoin | 9 | 10 | 12.803x | 105.44x |
Case breakdown¶
| Case | Branchline Interpreter (ops/s) | Branchline VM (ops/s) | Fastest JSONata (ops/s) | Fastest JSONata engine | Interpreter vs JSONata | VM vs JSONata |
|---|---|---|---|---|---|---|
| api-envelope-shaping | 31943.828 | 29589.864 | 28527.958 | dashjoin | 1.12x | 1.037x |
| contract-drift-projection | 32602.403 | 31710.865 | 20265.989 | dashjoin | 1.609x | 1.565x |
| contract-error-branches | 32846.748 | 32429.179 | 28928.344 | dashjoin | 1.135x | 1.121x |
| large-filter-map-aggregate | 30181.764 | 20117.842 | 20763.614 | dashjoin | 1.454x | 0.969x |
| lookup-join-enrichment | 30685.598 | 26639.593 | 17833.193 | dashjoin | 1.721x | 1.494x |
| nested-mapping-filtering | 28930.097 | 17467.332 | 13947.453 | dashjoin | 2.074x | 1.252x |
| numeric-precision-invoice | 32506.954 | 25991.691 | 25599.068 | dashjoin | 1.27x | 1.015x |
| performance/case001 | 5671.711 | 2671.402 | 25.336 | dashjoin | 223.862x | 105.44x |
| string-object-construction | 32266.286 | 31841.224 | 26979.16 | dashjoin | 1.196x | 1.18x |
| xml-ish-shape | 32782.725 | 31839.119 | 28394.54 | dashjoin | 1.155x | 1.121x |
Row state¶
| Engine | Case | Score (ops/s) | Allocation (B/op) | Validation state | Comparable | Credibility flag | Reason |
|---|---|---|---|---|---|---|---|
| branchline-interpreter | api-envelope-shaping | 31943.828 | 2262.411 | valid | true | ok | n/a |
| branchline-interpreter | contract-drift-projection | 32602.403 | 1967.217 | valid | true | ok | n/a |
| branchline-interpreter | contract-error-branches | 32846.748 | 1153.611 | valid | true | ok | n/a |
| branchline-interpreter | large-filter-map-aggregate | 30181.764 | 5439.332 | valid | true | ok | n/a |
| branchline-interpreter | lookup-join-enrichment | 30685.598 | 2658.412 | valid | true | ok | n/a |
| branchline-interpreter | nested-mapping-filtering | 28930.097 | 5020.014 | valid | true | ok | n/a |
| branchline-interpreter | numeric-precision-invoice | 32506.954 | 2341.611 | valid | true | ok | n/a |
| branchline-interpreter | performance/case001 | 5671.711 | 191672.874 | valid | true | ok | n/a |
| branchline-interpreter | string-object-construction | 32266.286 | 1664.81 | valid | true | ok | n/a |
| branchline-interpreter | xml-ish-shape | 32782.725 | 2089.611 | valid | true | ok | n/a |
| branchline-vm | api-envelope-shaping | 29589.864 | 1278.791 | valid | true | ok | n/a |
| branchline-vm | contract-drift-projection | 31710.865 | 2348.812 | valid | true | ok | n/a |
| branchline-vm | contract-error-branches | 32429.179 | 1266.071 | valid | true | ok | n/a |
| branchline-vm | large-filter-map-aggregate | 20117.842 | 11068.021 | valid | true | ok | n/a |
| branchline-vm | lookup-join-enrichment | 26639.593 | 320.051 | valid | true | ok | n/a |
| branchline-vm | nested-mapping-filtering | 17467.332 | 5740.024 | valid | true | ok | n/a |
| branchline-vm | numeric-precision-invoice | 25991.691 | 5084.816 | valid | true | ok | n/a |
| branchline-vm | performance/case001 | 2671.402 | 294402.557 | valid | true | ok | n/a |
| branchline-vm | string-object-construction | 31841.224 | 1823.211 | valid | true | ok | n/a |
| branchline-vm | xml-ish-shape | 31839.119 | 2348.812 | valid | true | ok | n/a |
| dashjoin | api-envelope-shaping | 28527.958 | 8404.018 | valid | true | ok | n/a |
| dashjoin | contract-drift-projection | 20265.989 | 30328.021 | valid | true | ok | n/a |
| dashjoin | contract-error-branches | 28928.344 | 5726.383 | valid | true | ok | n/a |
| dashjoin | large-filter-map-aggregate | 20763.614 | 23984.821 | valid | true | ok | n/a |
| dashjoin | lookup-join-enrichment | 17833.193 | 43201.624 | valid | true | ok | n/a |
| dashjoin | nested-mapping-filtering | 13947.453 | 67782.43 | valid | true | ok | n/a |
| dashjoin | numeric-precision-invoice | 25599.068 | 13952.236 | valid | true | ok | n/a |
| dashjoin | performance/case001 | 25.336 | 4.3753968708E7 | valid | true | ok | n/a |
| dashjoin | string-object-construction | 26979.16 | 14912.815 | valid | true | ok | n/a |
| dashjoin | xml-ish-shape | 28394.54 | 9851.214 | valid | true | ok | n/a |
| ibm | api-envelope-shaping | 22631.24 | 14220.341 | valid | true | ok | n/a |
| ibm | contract-drift-projection | 14890.234 | 42834.429 | valid | true | ok | n/a |
| ibm | contract-error-branches | 26520.269 | 8032.031 | valid | true | ok | n/a |
| ibm | large-filter-map-aggregate | 1.587020146E8 | 0.0 | evaluation_error | false | implausible_high_score_near_zero_alloc | java.lang.reflect.InvocationTargetException |
| ibm | lookup-join-enrichment | 2.45759183738E8 | 0.0 | evaluation_error | false | implausible_high_score_near_zero_alloc | java.lang.reflect.InvocationTargetException |
| ibm | nested-mapping-filtering | 6403.557 | 202559.333 | valid | true | ok | n/a |
| ibm | numeric-precision-invoice | 22360.675 | 12544.019 | valid | true | ok | n/a |
| ibm | performance/case001 | 2.46022063338E8 | 0.0 | compile_error | false | implausible_high_score_near_zero_alloc | line 1:15 at null: token recognition error at: '#' , line 1:16 at [@4,16:17='$i',<47>,1:16]: mismatched input '$i' expecting {'.', ',', 'in', '?', '[', '{', '}', '~>', '*', '/', '+', '-', '%', '=', '!=', '<', '<=', '>', '>=', '&', '^', 'and', 'or'} |
| ibm | string-object-construction | 26921.242 | 9131.223 | valid | true | ok | n/a |
| ibm | xml-ish-shape | 19789.458 | 27059.222 | valid | true | ok | n/a |