yuchanns opened a new pull request, #4893: URL: https://github.com/apache/opendal/pull/4893
Part of https://github.com/apache/opendal/issues/4892. Add a benchmark. Here is a benchmark between new and old implementations with the same benchmark read and write behavior in backend memory: **purego+libffi** (as `new.txt`) ``` goos: linux goarch: arm64 pkg: github.com/apache/opendal/bindings/go BenchmarkWrite4KiB-10 1000000 2844 ns/op BenchmarkWrite256KiB-10 163346 10092 ns/op BenchmarkWrite4MiB-10 12900 99161 ns/op BenchmarkWrite16MiB-10 1785 658210 ns/op BenchmarkRead4KiB-10 194529 6387 ns/op BenchmarkRead256KiB-10 14228 82704 ns/op BenchmarkRead4MiB-10 981 1227872 ns/op BenchmarkRead16MiB-10 328 3617185 ns/op PASS ok ``` **CGO** (as `old.txt`) ``` go test -bench=. -tags dynamic . goos: linux goarch: arm64 pkg: opendal.apache.org/go BenchmarkWrite4KiB-10 241981 4240 ns/op BenchmarkWrite256KiB-10 126464 10105 ns/op BenchmarkWrite4MiB-10 13443 89578 ns/op BenchmarkWrite16MiB-10 1737 646155 ns/op BenchmarkRead4KiB-10 53535 20939 ns/op BenchmarkRead256KiB-10 9008 132738 ns/op BenchmarkRead4MiB-10 576 1846683 ns/op BenchmarkRead16MiB-10 230 6305322 ns/op PASS ok ``` Diff with [benchstat](https://pkg.go.dev/golang.org/x/perf/cmd/benchstat) ``` benchstat old.txt new.txt goos: linux goarch: arm64 pkg: github.com/apache/opendal/bindings/go │ new.txt │ │ sec/op │ Write4KiB-10 2.844µ ± ∞ ¹ Write256KiB-10 10.09µ ± ∞ ¹ Write4MiB-10 99.16µ ± ∞ ¹ Write16MiB-10 658.2µ ± ∞ ¹ Read4KiB-10 6.387µ ± ∞ ¹ Read256KiB-10 82.70µ ± ∞ ¹ Read4MiB-10 1.228m ± ∞ ¹ Read16MiB-10 3.617m ± ∞ ¹ geomean 90.23µ ¹ need >= 6 samples for confidence interval at level 0.95 pkg: opendal.apache.org/go │ old.txt │ │ sec/op │ Write4KiB-10 4.240µ ± ∞ ¹ Write256KiB-10 10.11µ ± ∞ ¹ Write4MiB-10 89.58µ ± ∞ ¹ Write16MiB-10 646.2µ ± ∞ ¹ Read4KiB-10 20.94µ ± ∞ ¹ Read256KiB-10 132.7µ ± ∞ ¹ Read4MiB-10 1.847m ± ∞ ¹ Read16MiB-10 6.305m ± ∞ ¹ geomean 129.7µ ¹ need >= 6 samples for confidence interval at level 0.95 ``` What a surprise! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
