Squid Web Cache Wiki

Squid Web Cache 文档

🔗 内存池

🔗 详细信息

MemPools 是一组运行在malloc()之上的池化内存分配器。其目的是减少内存碎片并提供有关内存消耗的详细统计信息。

最好所有Squid中的内存分配都应使用MemPools或在其之上构建的类型之一(即cbdata)来完成。

MemPools目前已半迁移到标准的C++,已从C函数转换为C++类的静态成员。这留下了一些遗留问题,例如初始化顺序。

此外,随着malloc实现的最新进展,可能需要将Squid与替代的malloc实现链接

🔗 公共API

有关公共API定义,请参阅https://squid.org.cn/Doc/code/namespaceMem.htmlhttps://squid.org.cn/Doc/code/group__MemPoolsAPI.html

🔗 MEMPROXY_CLASS 宏

此宏为使用它的类定义了池化的newdelete运算符。这是将C++类集成到Squid中进行动态分配的首选方式。其他API机制也是可能的,但它们是为特殊用例设计的。

为了方便阅读和代码维护,它应该放在类定义的private区域的顶部,在任何其他API详细信息之前,然后跟着一个空行,接着是‘public:’部分定义。

    class Foo
    {
        MEMPROXY_CLASS(Foo);

    public:
       ...
    };

使用CBDATA_CLASS宏的类**不得**同时使用MEMPROXY_CLASS。这包括在类继承的直接线路中使用。

类别:功能

导航:站点搜索站点页面类别🔼 向上