Improve AioBuffer to make it safer, easier to use, and faster when integrating with other Go APIs.
New Go specific APIs: - MakeAioBufferZero() - creates a new buffer using calloc(), to make it easy and efficient to use a zeroed buffer. - AioBuffer.Slice() - create a slice backed by the underlying buffer without copying the contents of the buffer. Performance improments: - FromBytes() is 3 time faster - Code using Bytes() should use Slice() now. aio_copy example shows up to 260% speedup. Improve testing: - New AioBuffer tests - New AioBuffer benchmarks Documention: - AioBuffer is fully documnted now. Changes since v1: - Rename the new test to libnbd_020_ to match the current test numbering semantics (Eric) - We run the benchmarks in make check using very short timeout to keep them working without overloading the CI. (Eric) - Update copyright year (Eric) - Fix many typos in comments and commit messages (Eric) v1 was here: https://listman.redhat.com/archives/libguestfs/2022-January/msg00218.html Nir Soffer (9): golang: tests: Add test for AioBuffer golang: aio_buffer.go: Make it safer to use golang: aio_buffer.go: Add missing documentation golang: aio_buffer.go: Add MakeAioBufferZero() golang: aio_buffer.go: Add Slice() golang: tests: Use AioBuffer.Slice() golang: aio_buffer.go: Speed up FromBytes() golang: aio_buffer.go: Benchmark copy flows golang: examples: aio_copy: Simplify using AioBuffer golang/Makefile.am | 1 + golang/aio_buffer.go | 39 ++++- golang/examples/aio_copy/aio_copy.go | 29 +--- golang/libnbd_020_aio_buffer_test.go | 236 +++++++++++++++++++++++++++ golang/libnbd_500_aio_pread_test.go | 2 +- golang/libnbd_510_aio_pwrite_test.go | 8 +- golang/run-tests.sh | 5 + 7 files changed, 286 insertions(+), 34 deletions(-) create mode 100644 golang/libnbd_020_aio_buffer_test.go -- 2.34.1 _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs