VeloGraphX
High-performance dynamic graph analytics in C++20
Loading...
Searching...
No Matches
memory_budget.hpp
Go to the documentation of this file.
1#pragma once
2#include <algorithm>
3#include <cstddef>
4#include <string>
5namespace velographx {
7 public:
8 explicit MemoryBudget(std::size_t bytes):bytes_(bytes){}
9 [[nodiscard]] std::size_t bytes()const noexcept{return bytes_;}
10 [[nodiscard]] std::size_t resident_limit(std::size_t graph_bytes,std::size_t algorithm_state_bytes)const noexcept{return bytes_>algorithm_state_bytes?std::min(graph_bytes,bytes_-algorithm_state_bytes):0;}
11 private:std::size_t bytes_;
12};
13inline std::size_t parse_memory_budget_gib(std::size_t gib){return gib*1024ULL*1024ULL*1024ULL;}
14}
std::size_t resident_limit(std::size_t graph_bytes, std::size_t algorithm_state_bytes) const noexcept
MemoryBudget(std::size_t bytes)
std::size_t bytes() const noexcept
std::size_t parse_memory_budget_gib(std::size_t gib)