mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-13 03:12:13 +00:00
test/memory_footpring: Print radix tree node sizes
After switching cells storage onto compact radix tree it becomes useful to know the tree nodes' sizes. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -97,6 +97,7 @@ class compaction_garbage_collector;
|
||||
//
|
||||
//
|
||||
class row {
|
||||
friend class size_calculator;
|
||||
using size_type = std::make_unsigned_t<column_id>;
|
||||
size_type _size = 0;
|
||||
using sparse_array_type = compact_radix_tree::tree<cell_and_hash, column_id>;
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
#include "test/lib/reader_permit.hh"
|
||||
|
||||
class size_calculator {
|
||||
using cells_type = row::sparse_array_type;
|
||||
|
||||
class nest {
|
||||
public:
|
||||
static thread_local int level;
|
||||
@@ -73,6 +75,19 @@ public:
|
||||
std::cout << prefix() << "sizeof(lru_link_type) = " << sizeof(rows_entry::lru_link_type) << "\n";
|
||||
std::cout << prefix() << "sizeof(deletable_row) = " << sizeof(deletable_row) << "\n";
|
||||
std::cout << prefix() << "sizeof(row) = " << sizeof(row) << "\n";
|
||||
std::cout << prefix() << "radix_tree::inner_node::node_sizes = ";
|
||||
for (int i = 4; i <= 128; i *= 2) {
|
||||
std::cout << " " << cells_type::inner_node::node_type::node_size(cells_type::layout::direct_dynamic, i);
|
||||
}
|
||||
std::cout << "\n";
|
||||
std::cout << prefix() << "radix_tree::leaf_node::node_sizes = ";
|
||||
std::cout << " " << cells_type::leaf_node::node_type::node_size(cells_type::layout::indirect_tiny, 0);
|
||||
std::cout << " " << cells_type::leaf_node::node_type::node_size(cells_type::layout::indirect_small, 0);
|
||||
std::cout << " " << cells_type::leaf_node::node_type::node_size(cells_type::layout::indirect_medium, 0);
|
||||
std::cout << " " << cells_type::leaf_node::node_type::node_size(cells_type::layout::indirect_large, 0);
|
||||
std::cout << " " << cells_type::leaf_node::node_type::node_size(cells_type::layout::direct_static, 0);
|
||||
std::cout << "\n";
|
||||
|
||||
std::cout << prefix() << "sizeof(atomic_cell_or_collection) = " << sizeof(atomic_cell_or_collection) << "\n";
|
||||
std::cout << prefix() << "btree::linear_node_size(1) = " << mutation_partition::rows_type::node::linear_node_size(1) << "\n";
|
||||
std::cout << prefix() << "btree::inner_node_size = " << mutation_partition::rows_type::node::inner_node_size << "\n";
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
#include "utils/allocation_strategy.hh"
|
||||
#include "utils/array-search.hh"
|
||||
|
||||
class size_calculator;
|
||||
|
||||
namespace compact_radix_tree {
|
||||
|
||||
template <typename T, typename Idx> class printer;
|
||||
@@ -105,6 +107,7 @@ struct variadic_union<Tx, Ty, Ts...> {
|
||||
template <typename T, typename Index = unsigned int>
|
||||
requires std::is_nothrow_move_constructible_v<T> && std::is_integral_v<Index>
|
||||
class tree {
|
||||
friend class ::size_calculator;
|
||||
template <typename A, typename I> friend class printer;
|
||||
|
||||
class leaf_node;
|
||||
|
||||
Reference in New Issue
Block a user