EventPipe container types optimizations. (#83251)
authorJohan Lorensson <lateralusx.github@gmail.com>
Wed, 15 Mar 2023 08:07:42 +0000 (09:07 +0100)
committerGitHub <noreply@github.com>
Wed, 15 Mar 2023 08:07:42 +0000 (09:07 +0100)
commit186587ed14c80271f5e7397377733713c6fd0020
treedc8c024dcff4580561b25bc3979d7452d7692352
parentbe832d77d8c0d6038547f5618c48d0c5df4a4550
EventPipe container types optimizations. (#83251)

During work collecting regressions statistics for #78852 I did some profiling on performance tests included in native EventPipe tests, https://github.com/dotnet/runtime/blob/main/src/mono/mono/eventpipe/test. This commit implements a couple of optimizations in the EventPipe native container classes as well as Mono's EventPipe implementation improving performance in low level native EventPipe performance tests.

Commit also includes a number of new native EventPipe tests covering optimizations done in dn_vector_ptr_t.
14 files changed:
src/mono/mono/eventpipe/ep-rt-mono.h
src/mono/mono/eventpipe/test/dn-vector-ptr-tests.c
src/mono/mono/eventpipe/test/dn-vector-tests.c
src/mono/mono/eventpipe/test/ep-provider-callback-dataqueue-tests.c
src/mono/mono/utils/mono-mmap-windows.c
src/native/containers/dn-umap.c
src/native/containers/dn-vector-priv.h
src/native/containers/dn-vector-t.h
src/native/containers/dn-vector-types.h
src/native/containers/dn-vector.c
src/native/containers/dn-vector.h
src/native/eventpipe/ds-ipc.c
src/native/eventpipe/ep-buffer-manager.c
src/native/eventpipe/ep-session.c