Commit 32cc782
authored
chore: Make materializer stackless for obj and arr (#620)
Motivation:
This can reduce some stack usage of the jvm native frame
refs:google/jsonnet#1142
on main
```
125] Benchmark (path) Mode Cnt Score Error Units
125] RegressionBenchmark.main bench/resources/bug_suite/assertions.jsonnet avgt 0.271 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.01.jsonnet avgt 0.067 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.02.jsonnet avgt 42.941 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.03.jsonnet avgt 12.480 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.04.jsonnet avgt 31.739 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.06.jsonnet avgt 0.397 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.07.jsonnet avgt 3.589 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.08.jsonnet avgt 0.056 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.09.jsonnet avgt 0.063 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/gen_big_object.jsonnet avgt 0.936 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/large_string_join.jsonnet avgt 2.312 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/large_string_template.jsonnet avgt 2.288 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/realistic1.jsonnet avgt 2.965 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/realistic2.jsonnet avgt 71.454 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64.jsonnet avgt 0.787 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64Decode.jsonnet avgt 0.595 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64DecodeBytes.jsonnet avgt 9.178 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64_byte_array.jsonnet avgt 1.416 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/comparison.jsonnet avgt 23.242 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/comparison2.jsonnet avgt 72.070 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/escapeStringJson.jsonnet avgt 0.048 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/foldl.jsonnet avgt 9.089 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/lstripChars.jsonnet avgt 0.609 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/manifestJsonEx.jsonnet avgt 0.069 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/manifestTomlEx.jsonnet avgt 0.085 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/manifestYamlDoc.jsonnet avgt 0.072 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/member.jsonnet avgt 0.707 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/parseInt.jsonnet avgt 0.050 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/reverse.jsonnet avgt 11.035 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/rstripChars.jsonnet avgt 0.590 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/stripChars.jsonnet avgt 0.584 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/substr.jsonnet avgt 0.159 ms/op
125] RegressionBenchmark.main bench/resources/sjsonnet_suite/setDiff.jsonnet avgt 0.485 ms/op
125] RegressionBenchmark.main bench/resources/sjsonnet_suite/setInter.jsonnet avgt 0.435 ms/op
125] RegressionBenchmark.main bench/resources/sjsonnet_suite/setUnion.jsonnet avgt 0.723 ms/op
125/125, SUCCESS] ./mill bench.runRegressions 434s
```
with this
```
125] Benchmark (path) Mode Cnt Score Error Units
125] RegressionBenchmark.main bench/resources/bug_suite/assertions.jsonnet avgt 0.297 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.01.jsonnet avgt 0.068 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.02.jsonnet avgt 39.359 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.03.jsonnet avgt 12.130 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.04.jsonnet avgt 30.164 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.06.jsonnet avgt 0.418 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.07.jsonnet avgt 3.256 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.08.jsonnet avgt 0.057 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/bench.09.jsonnet avgt 0.064 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/gen_big_object.jsonnet avgt 0.982 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/large_string_join.jsonnet avgt 2.111 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/large_string_template.jsonnet avgt 2.250 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/realistic1.jsonnet avgt 2.945 ms/op
125] RegressionBenchmark.main bench/resources/cpp_suite/realistic2.jsonnet avgt 65.150 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64.jsonnet avgt 0.815 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64Decode.jsonnet avgt 0.626 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64DecodeBytes.jsonnet avgt 9.380 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/base64_byte_array.jsonnet avgt 1.443 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/comparison.jsonnet avgt 22.236 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/comparison2.jsonnet avgt 76.674 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/escapeStringJson.jsonnet avgt 0.049 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/foldl.jsonnet avgt 9.004 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/lstripChars.jsonnet avgt 0.643 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/manifestJsonEx.jsonnet avgt 0.069 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/manifestTomlEx.jsonnet avgt 0.084 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/manifestYamlDoc.jsonnet avgt 0.073 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/member.jsonnet avgt 0.708 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/parseInt.jsonnet avgt 0.051 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/reverse.jsonnet avgt 11.257 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/rstripChars.jsonnet avgt 0.641 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/stripChars.jsonnet avgt 0.624 ms/op
125] RegressionBenchmark.main bench/resources/go_suite/substr.jsonnet avgt 0.159 ms/op
125] RegressionBenchmark.main bench/resources/sjsonnet_suite/setDiff.jsonnet avgt 0.488 ms/op
125] RegressionBenchmark.main bench/resources/sjsonnet_suite/setInter.jsonnet avgt 0.423 ms/op
125] RegressionBenchmark.main bench/resources/sjsonnet_suite/setUnion.jsonnet avgt 0.743 ms/op
125/125, SUCCESS] ./mill bench.runRegressions 434s
```1 parent 415524b commit 32cc782
7 files changed
Lines changed: 1166 additions & 35 deletions
File tree
- sjsonnet
- src/sjsonnet
- test/resources/new_test_suite
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
292 | 292 | | |
293 | 293 | | |
294 | 294 | | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
295 | 314 | | |
296 | 315 | | |
297 | 316 | | |
| |||
0 commit comments