@@ -15,6 +15,12 @@ The documentation for gRPCClient.jl can be found [here](https://juliaio.github.i
1515
1616## Benchmarks
1717
18+
19+ ### Naive Baseline: ` julia `
20+
21+ By default Julia 1.12 starts with just one thread. The closer to ` @async ` we get, the better performance is for most cases.
22+ However, it is unlikely Julia will be used this way in the real world.
23+
1824```
1925╭──────────────────────────────────┬─────────┬────────┬─────────────┬──────────┬────────────┬──────────────┬─────────┬──────┬──────╮
2026│ Benchmark │ N │ Memory │ Allocations │ Duration │ Throughput │ Avg duration │ Std-dev │ Min │ Max │
@@ -28,6 +34,23 @@ The documentation for gRPCClient.jl can be found [here](https://juliaio.github.i
2834╰──────────────────────────────────┴─────────┴────────┴─────────────┴──────────┴────────────┴──────────────┴─────────┴──────┴──────╯
2935```
3036
37+ ### Real World: ` julia -t auto `
38+
39+ Using more threads isn't great for async IO, but this is likely how most people will be using ` gRPCClient.jl ` .
40+
41+ ```
42+ ╭──────────────────────────────────┬─────────┬────────┬─────────────┬──────────┬────────────┬──────────────┬─────────┬──────┬──────╮
43+ │ Benchmark │ N │ Memory │ Allocations │ Duration │ Throughput │ Avg duration │ Std-dev │ Min │ Max │
44+ │ │ calls │ MiB │ │ s │ calls/s │ μs │ μs │ μs │ μs │
45+ ├──────────────────────────────────┼─────────┼────────┼─────────────┼──────────┼────────────┼──────────────┼─────────┼──────┼──────┤
46+ │ workload_smol │ 91000 │ 3.75 │ 85123 │ 5.03 │ 18079 │ 55 │ 3.96 │ 48 │ 67 │
47+ │ workload_32_224_224_uint8 │ 2900 │ 63.78 │ 9188 │ 5.01 │ 579 │ 1728 │ 97.86 │ 1614 │ 1899 │
48+ │ workload_streaming_request │ 1841000 │ 0.89 │ 6482 │ 4.99 │ 368669 │ 3 │ 1.35 │ 2 │ 21 │
49+ │ workload_streaming_response │ 330000 │ 13.0 │ 27838 │ 5.02 │ 65771 │ 15 │ 5.2 │ 6 │ 37 │
50+ │ workload_streaming_bidirectional │ 405000 │ 1.48 │ 25672 │ 5.0 │ 80948 │ 12 │ 8.52 │ 3 │ 62 │
51+ ╰──────────────────────────────────┴─────────┴────────┴─────────────┴──────────┴────────────┴──────────────┴─────────┴──────┴──────╯
52+ ```
53+
3154## Acknowledgement
3255
3356This package is essentially a rewrite of the 0.1 version of gRPCClient.jl together with a gRPC specialized version of [ Downloads.jl] ( https://github.com/JuliaLang/Downloads.jl ) . Without the above packages to build ontop of this effort would have been a far more signifigant undertaking, so thank you to all of the authors and maintainers who made this possible.
0 commit comments