背景

不是所有性能优化都要上自研内存池。很多时候,std::pmr 已经能解决不少问题。

一个实用场景

请求处理阶段会构建很多临时字符串和容器,生命周期一致,适合放在同一块内存资源里。

#include <memory_resource>
#include <string>
#include <vector>

void handleRequest() {
    std::byte buffer[4096];
    std::pmr::monotonic_buffer_resource pool(buffer, sizeof(buffer));

    std::pmr::vector<std::pmr::string> fields{&pool};
    fields.emplace_back("user", &pool);
    fields.emplace_back("email", &pool);
}

总结

pmr 的价值在于“低侵入地控制分配策略”。

在临时对象密集场景里,收益通常比预想更明显。


能用标准库解决的问题,优先别把复杂度推到自研。