tp: add TokenizedObjectStore for storing metadata while sorting events
This CL introduces TokenizedObjectStore, a variadic data structure
optimized for storing the metadata for events in a highly memory
efficient manner. This class is intended to be a replacement for
VariadicQueue and related classes due to being better tested and more
readable.
This class is implemented by building on top of BumpAllocator from a
previous CL and a follow-up CL will move TraceSorter to using this
logic.
Change-Id: I40302a7d23ace01880e155834ccfb3b665caca38
diff --git a/BUILD b/BUILD
index 9ab91e9..d7f4d06 100644
--- a/BUILD
+++ b/BUILD
@@ -1825,6 +1825,8 @@
"src/trace_processor/sorter/trace_sorter.h",
"src/trace_processor/sorter/trace_sorter_internal.h",
"src/trace_processor/sorter/trace_sorter_queue.h",
+ "src/trace_processor/sorter/trace_token_buffer.cc",
+ "src/trace_processor/sorter/trace_token_buffer.h",
],
)
@@ -1986,6 +1988,15 @@
],
)
+# GN target: //src/trace_processor/util:bump_allocator
+perfetto_filegroup(
+ name = "src_trace_processor_util_bump_allocator",
+ srcs = [
+ "src/trace_processor/util/bump_allocator.cc",
+ "src/trace_processor/util/bump_allocator.h",
+ ],
+)
+
# GN target: //src/trace_processor/util:descriptors
perfetto_filegroup(
name = "src_trace_processor_util_descriptors",
@@ -4581,6 +4592,7 @@
":src_trace_processor_tables_tables",
":src_trace_processor_tables_tables_python",
":src_trace_processor_types_types",
+ ":src_trace_processor_util_bump_allocator",
":src_trace_processor_util_descriptors",
":src_trace_processor_util_glob",
":src_trace_processor_util_gzip",
@@ -4731,6 +4743,7 @@
":src_trace_processor_tables_tables",
":src_trace_processor_tables_tables_python",
":src_trace_processor_types_types",
+ ":src_trace_processor_util_bump_allocator",
":src_trace_processor_util_descriptors",
":src_trace_processor_util_glob",
":src_trace_processor_util_gzip",
@@ -4936,6 +4949,7 @@
":src_trace_processor_tables_tables",
":src_trace_processor_tables_tables_python",
":src_trace_processor_types_types",
+ ":src_trace_processor_util_bump_allocator",
":src_trace_processor_util_descriptors",
":src_trace_processor_util_glob",
":src_trace_processor_util_gzip",