当前位置: 首页 > news >正文

天佐.炼妖壶 带内存泄漏检测的内存池

天佐.炼妖壶

天佐.炼妖壶

简介

天佐.炼妖壶 一种简单的内存池,初始化申请一些内存循环使用,不够时动态进行扩容,并且带内存泄漏检测功能。

传说:
它代表着融合和进化。炼妖壶可以收纳万物,将妖兽、灵兽等生物炼化为壶中元气。这种力量象征着融合与进化,寓意着道家文化的包容与和谐。

目标

设计一种内存池,循环进行内存使用,提高内存使用效率,同时提供内存泄漏检测功能。

功能

  • 🧩 集成简单
  • 📝 可选择生成内存泄漏日志
  • 🪐 日志多语言(简体中文/English)

截图

通过日志分析定位内存泄漏代码行:

例子


#include <iostream>
#include "../../include/tianzuo.LianYaoInterface.h"

void* operator new(size_t size) {
    return tianzuo_LianYaoInt::mem_get(size);
}
void* operator new[](size_t size) {
    return operator new(size);
}

void operator delete(void* ptr) noexcept {
    tianzuo_LianYaoInt::mem_del(ptr);
}
void operator delete[](void* ptr) noexcept {
    operator delete(ptr);
}

class cpp {
 public:
    cpp() {}
    ~cpp() {}
 private:
     int m_a;
     long m_l;
     float m_f;
};

int main(int argc, char* argv[]) {
    std::cout << "start tianzuo.LianYaoTest ...\n";
#ifdef WIN32
    tianzuo_LianYaoInt::initialize(3, "memory_leaks.log", nullptr, 0);
#else
    tianzuo_LianYaoInt::initialize(3, "memory_leaks.log", "./tianzuo.LianYaoTest", 0);
#endif

    int* new_int = new int(10); // leak 4
    int* new_int2 = new int(10);
    *new_int2 = 12;
    
    for (size_t i = 0; i < 10; i++) {
        int* new_int3 = new int(10);
        *new_int3 = 12;
        delete new_int3;
    }
   
    char* new_buf = new char[1555]; // leak 1555
    char* new_buf2 = new char[123];

    cpp* new_class = new cpp(); // leak 12
    cpp* new_class2 = new cpp();
    
    class1* cls1 = new class1();
    delete cls1;

    delete new_class2;
    delete new_int2;
    delete[] new_buf2;

    tianzuo_LianYaoInt::terminate();

    return 0;
}

下载

https://github.com/zhengtianzuo/tianzuo.LianYao/releaseshttps://gitee.com/zhengtianzuo/tianzuo.LianYao/releaseshttps://pan.baidu.com/s/1Lv9dOBpV4-eXpi9yl0BSUg?pwd=1234https://share.weiyun.com/J7ZYxKL7
作者郑天佐
邮箱zhengtianzuo06@163.com
主页http://www.zhengtianzuo.com
githubhttps://github.com/zhengtianzuo

相关文章:

  • 华为飞腾D2000芯片(基于ARM架构)的欧拉操作系统(openEuler)上部署MySQL
  • doris: Hive
  • 使用Word时无法粘贴,弹出错误提示:运行时错误‘53‘:文件未找到:MathPage.WLL
  • Qt | 目录和文件路径常用函数大全
  • 剧本杀门店预约小程序:市场发展下的刚需
  • AutoGen学习笔记系列(一)Tutorial - Model
  • QT基础十二、标准项模型:QStandardItemModel
  • 2024华为OD机试真题-数据分类算法(C++/Java/Python)-E卷-100分
  • 零基础学习OpenGL(二)查看各工程源码
  • 蓝桥杯备考:动态规划线性dp之下楼梯问题进阶版
  • MacOS 10.15上使用Docker遇到的几个问题
  • Python中的内置函数 - 第一章
  • Linux:vim快捷键
  • VBA中类的解读及应用第二十一讲:利用类方法判断任意单元格类型-4
  • 原生android 打包.aar到uniapp使用
  • 《玩转AI大模型:从入门到创新实践》(12)LLM初步(4)
  • Redis数据库面试——数据结构类型知识
  • Android Flow操作符分类
  • FastGPT 引申:Rerank 函数调用实例
  • 【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(成功版)
  • 温州网站搭建/适合女生去的培训机构
  • asp添加网站管理员/浏览器直接进入网站的注意事项
  • 四川建设网网站/企业网站seo
  • 2023年文职招聘岗位表/浙江seo博客
  • 网站建设贝尔利/hao123影视
  • 内部网站开发/什么是关键词