Skip to content

Commit 62edc62

Browse files
authored
Show benchmarks with both julia and julia -t auto (#60)
1 parent e7741e5 commit 62edc62

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3356
This 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

Comments
 (0)