1#ifndef _PAINLESS_MESH_MEMORY_HPP_
2#define _PAINLESS_MESH_MEMORY_HPP_
26 pool_.reserve(initial_size);
27 for (
size_t i = 0; i < initial_size; ++i) {
28 pool_.emplace_back(std::make_unique<T>());
34 auto obj = std::move(pool_.back());
38 return std::make_unique<T>();
42 if (pool_.size() < max_pool_size_) {
45 pool_.push_back(std::move(obj));
50 size_t size()
const {
return pool_.size(); }
53 std::vector<std::unique_ptr<T>> pool_;
54 static constexpr size_t max_pool_size_ = 20;
63 buffer_.reserve(initial_capacity);
66 void clear() { buffer_.clear(); }
69 if (buffer_.capacity() < buffer_.size() +
str.length()) {
70 buffer_.reserve(std::max(buffer_.capacity() * 2, buffer_.size() +
str.length()));
78 size_t capacity()
const {
return buffer_.capacity(); }
79 size_t size()
const {
return buffer_.size(); }
113#ifdef PAINLESS_MESH_ENABLE_MEMORY_STATS
114extern MemoryStats global_memory_stats;
size_t size() const
Definition memory.hpp:50
void release(std::unique_ptr< T > obj)
Definition memory.hpp:41
ObjectPool(size_t initial_size=10)
Definition memory.hpp:25
std::unique_ptr< T > acquire()
Definition memory.hpp:32
const TSTRING & str() const
Definition memory.hpp:75
TSTRING & str()
Definition memory.hpp:76
size_t size() const
Definition memory.hpp:79
size_t capacity() const
Definition memory.hpp:78
void append(const TSTRING &str)
Definition memory.hpp:68
StringBuffer(size_t initial_capacity=512)
Definition memory.hpp:62
void clear()
Definition memory.hpp:66
String TSTRING
Definition configuration.hpp:132
void reset()
Definition memory.hpp:107
void record_allocation(size_t size)
Definition memory.hpp:95
size_t peak_usage
Definition memory.hpp:92
size_t current_usage
Definition memory.hpp:91
size_t total_allocated
Definition memory.hpp:89
size_t allocation_count
Definition memory.hpp:93
void record_deallocation(size_t size)
Definition memory.hpp:102
size_t total_freed
Definition memory.hpp:90