@@ -54,28 +54,29 @@ void serialize(const Recorder& r, std::ostringstream& buf) {
5454 if constexpr (std::is_same_v<Recorder, NoneRecorder>) {
5555 return ;
5656 } else {
57- const auto memory_use = memory::estimate (r.getMaxStackAllocs (), r.getMaxHeapAllocs (), r.getGlobalAllocs ());
57+ // const auto memory_use = memory::estimate(r.getMaxStackAllocs(), r.getMaxHeapAllocs(), r.getGlobalAllocs());
5858
5959 Table t (" Alloc Stats from softcounters" );
6060 t.wrap_length_ = true ;
6161 t.put (Row::make (" Total heap" , r.getHeapAllocs (), r.getHeapArray ()));
6262 t.put (Row::make (" Total stack" , r.getStackAllocs (), r.getStackArray ()));
6363 t.put (Row::make (" Total global" , r.getGlobalAllocs (), r.getGlobalArray ()));
64- t.put (Row::make (" Max. Heap Allocs " , r.getMaxHeapAllocs ()));
65- t.put (Row::make (" Max. Stack Allocs " , r.getMaxStackAllocs ()));
64+ t.put (Row::make (" Max. heap " , r.getMaxHeapAllocs ()));
65+ t.put (Row::make (" Max. stack " , r.getMaxStackAllocs ()));
6666 t.put (Row::make (" Addresses checked" , r.getAddrChecked ()));
67- t.put (Row::make (" Distinct Addresses checked" , r.getSeen ().size ()));
67+ t.put (Row::make (" Distinct addresses checked" , r.getSeen ().size ()));
6868 t.put (Row::make (" Addresses re-used" , r.getAddrReuses ()));
6969 t.put (Row::make (" Addresses missed" , r.getAddrMissing ()));
70- t.put (Row::make (" Distinct Addresses missed" , r.getMissing ().size ()));
70+ t.put (Row::make (" Distinct addresses missed" , r.getMissing ().size ()));
7171 t.put (Row::make (" Total free heap" , r.getHeapAllocsFree (), r.getHeapArrayFree ()));
7272 t.put (Row::make (" Total free stack" , r.getStackAllocsFree (), r.getStackArrayFree ()));
73- t.put (Row::make (" OMP Stack/Heap/Free " , r.getOmpStackCalls (), r.getOmpHeapCalls (), r.getOmpFreeCalls ()));
74- t.put (Row::make (" Null/Zero/NullZero Addr " , r.getNullAlloc (), r.getZeroAlloc (), r.getNullAndZeroAlloc ()));
73+ t.put (Row::make (" OMP stack/heap/free " , r.getOmpStackCalls (), r.getOmpHeapCalls (), r.getOmpFreeCalls ()));
74+ t.put (Row::make (" Null/Zero/NullZero addr " , r.getNullAlloc (), r.getZeroAlloc (), r.getNullAndZeroAlloc ()));
7575 t.put (Row::make (" User-def. types" , r.getNumUDefTypes ()));
76- t.put (Row::make (" Estimated memory use (KiB)" , size_t (std::round (memory_use.map + memory_use.stack ))));
77- t.put (Row::make (" Bytes per node map/stack" , memory::MemOverhead::perNodeSizeMap,
78- memory::MemOverhead::perNodeSizeStack));
76+ t.put (Row::make (" Distinct query types" , r.getTypeQuery ().size ()));
77+ // t.put(Row::make("Estimated memory use (KiB)", size_t(std::round(memory_use.map + memory_use.stack))));
78+ // t.put(Row::make("Bytes per node map/stack", memory::MemOverhead::perNodeSizeMap,
79+ // memory::MemOverhead::perNodeSizeStack));
7980
8081 t.print (buf);
8182
@@ -108,17 +109,31 @@ void serialize(const Recorder& r, std::ostringstream& buf) {
108109 }
109110
110111 type_table.print (buf);
112+ {
113+ Table type_table_free (" Free allocation type detail (heap, stack)" );
114+ type_table_free.table_header_ = ' #' ;
115+ for (auto type_id : type_id_set) {
116+ type_table_free.put (Row::make (std::to_string (type_id), count (r.getHeapFree (), type_id),
117+ count (r.getStackFree (), type_id), typeart_get_type_name (type_id)));
118+ }
111119
112- Table type_table_free (" Free allocation type detail (heap, stack)" );
113- type_table_free.table_header_ = ' #' ;
114- for (auto type_id : type_id_set) {
115- type_table_free.put (Row::make (std::to_string (type_id), count (r.getHeapFree (), type_id),
116- count (r.getStackFree (), type_id), typeart_get_type_name (type_id)));
120+ type_table_free.print (buf);
117121 }
122+ {
123+ Table type_table_query (" Query type detail" );
124+ type_table_query.table_header_ = ' #' ;
125+ const auto & query_map = r.getTypeQuery ();
126+ for (const auto & [query_type_id, query_count] : query_map) {
127+ type_table_query.put (Row::make (std::to_string (query_type_id), query_count, typeart_get_type_name (query_type_id)));
128+ }
118129
119- type_table_free.print (buf);
130+ type_table_query.print (buf);
131+ }
120132
121133 const auto numThreads = r.getNumThreads ();
134+ if (numThreads < 2 ) {
135+ return ;
136+ }
122137 std::stringstream ss;
123138 ss << " Per-thread counter values (" << numThreads << " threads)" ;
124139 Table thread_table (ss.str ());
0 commit comments