git.delta.rocks / jrsonnet / refs/commits / 811ff8af0e6a

difftreelog

docs populate README with benchmark results

Лач2020-06-26parent: #7e19bef.patch.diff
in: master

1 file changed

modifiedREADME.mddiffbeforeafterboth
17- Can pass all of original `examples` tests17- Can pass all of original `examples` tests
18- Can pass all of original `test_suite` tests, expect those, which checks golden output for stacktraces (vanilla-like stacktraces are implemented, but look is not 100% identical): ![Example output](./traces.png)18- Can pass all of original `test_suite` tests, expect those, which checks golden output for stacktraces (vanilla-like stacktraces are implemented, but look is not 100% identical): ![Example output](./traces.png)
19
20## Production usage
21
22It can be used within scripts, but i won't recommend embedding it into applications,
23because currently not all errors are thrown as errors, panic possible on incorrect input.
24
25## Bindings
26
27Currently no language bindings are implemented
28
29## Benchmark
30
31It is faster than golang implementation on mine kubernetes cluster configuration, which includes a lot of stuff, i.e prometheus operator
32
33Mine configuration contains two manifests, first one contains a lot of plain values, second one - a lot of computations
34
35- `gojsonnet` - golang impl
36- `../../../../jsonnet-rs/target/release/jrsonnet` - this repo impl
37
38```md
39# Manifest 1 (plain values)
40
41Benchmark #1: gojsonnet 02-prepare.jsonnet -J ../vendor/
42 Time (mean ± σ): 647.4 ms ± 12.8 ms [User: 1.252 s, System: 0.069 s]
43 Range (min … max): 626.0 ms … 668.7 ms 10 runs
44
45Benchmark #2: ../../../../jsonnet-rs/target/release/jrsonnet 02-prepare.jsonnet -J ../vendor/
46 Time (mean ± σ): 163.7 ms ± 2.9 ms [User: 138.5 ms, System: 24.6 ms]
47 Range (min … max): 161.4 ms … 174.0 ms 17 runs
48
49Summary
50 '../../../../jsonnet-rs/target/release/jrsonnet 02-prepare.jsonnet -J ../vendor/' ran
51 3.96 ± 0.10 times faster than 'gojsonnet 02-prepare.jsonnet -J ../vendor/'
52
53# Manifest 2 (computations)
54
55Benchmark #1: gojsonnet 03-deploy.jsonnet -J ../vendor/
56 Time (mean ± σ): 14.387 s ± 0.473 s [User: 27.657 s, System: 0.226 s]
57 Range (min … max): 13.865 s … 15.147 s 10 runs
58
59Benchmark #2: ../../../../jsonnet-rs/target/release/jrsonnet 03-deploy.jsonnet -J ../vendor/
60 Time (mean ± σ): 2.373 s ± 0.083 s [User: 2.304 s, System: 0.063 s]
61 Range (min … max): 2.286 s … 2.486 s 10 runs
62
63Summary
64 '../../../../jsonnet-rs/target/release/jrsonnet 03-deploy.jsonnet -J ../vendor/' ran
65 6.06 ± 0.29 times faster than 'gojsonnet 03-deploy.jsonnet -J ../vendor/'
66```
67
68However, go impl still can be faster in some cases, because it curretly have more stdlib functions implemented in native, instead of stdlib (I.e `std.base64`)
1969