# IAllocator::GetPeakAllocated ```cpp virtual size_t GetPeakAllocated() const = 0; ``` 返回此分配器自创建以来达到的峰值分配字节数。该值在每次分配后更新,用于监控内存使用高峰。 **参数:** 无 **返回:** 峰值分配字节数 **复杂度:** O(1) **示例:** ```cpp #include class MyAllocator : public IAllocator { size_t m_peak = 0; size_t m_current = 0; public: void* Allocate(size_t size, size_t alignment = 0) override { void* ptr = ::operator new(size); m_current += size; if (m_current > m_peak) m_peak = m_current; return ptr; } void Free(void* ptr) override { if (ptr) { size_t size = 256; // 需要外部记录 ::operator delete(ptr); m_current -= size; } } void* Reallocate(void* ptr, size_t newSize) override { /* ... */ } size_t GetTotalAllocated() const override { return 0; } size_t GetTotalFreed() const override { return 0; } size_t GetPeakAllocated() const override { return m_peak; } size_t GetAllocationCount() const override { return 0; } const char* GetName() const override { return "MyAllocator"; } }; MyAllocator alloc; alloc.Allocate(100); size_t peak1 = alloc.GetPeakAllocated(); // 100 alloc.Allocate(50); size_t peak2 = alloc.GetPeakAllocated(); // 150 ``` ## 相关文档 - [IAllocator 总览](allocator.md) - 返回类总览