Print memory stats

This commit is contained in:
momo5502
2025-07-12 13:47:52 +02:00
parent 90c087786c
commit 08995a4205
8 changed files with 196 additions and 54 deletions

View File

@@ -100,6 +100,25 @@ void memory_manager::update_layout_version()
#endif
}
memory_stats memory_manager::compute_memory_stats() const
{
memory_stats stats{};
stats.reserved_memory = 0;
stats.committed_memory = 0;
for (const auto& reserved_region : this->reserved_regions_ | std::views::values)
{
stats.reserved_memory += reserved_region.length;
for (const auto& committed_region : reserved_region.committed_regions | std::views::values)
{
stats.committed_memory += committed_region.length;
}
}
return stats;
}
void memory_manager::serialize_memory_state(utils::buffer_serializer& buffer, const bool is_snapshot) const
{
buffer.write_atomic(this->layout_version_);

View File

@@ -24,6 +24,12 @@ struct region_info : basic_memory_region
using mmio_read_callback = std::function<void(uint64_t addr, void* data, size_t size)>;
using mmio_write_callback = std::function<void(uint64_t addr, const void* data, size_t size)>;
struct memory_stats
{
uint64_t reserved_memory = 0;
uint64_t committed_memory = 0;
};
class memory_manager : public memory_interface
{
public:
@@ -90,6 +96,8 @@ class memory_manager : public memory_interface
void serialize_memory_state(utils::buffer_serializer& buffer, bool is_snapshot) const;
void deserialize_memory_state(utils::buffer_deserializer& buffer, bool is_snapshot);
memory_stats compute_memory_stats() const;
private:
memory_interface* memory_{};
reserved_region_map reserved_regions_{};