自定义 operator new, placement new,以及释放内存
1. new 操作符(new operator) new 操作符做两件事:分配内存 + 调用构造函数初始化。 2. operator new 通常声明如下: operator new 操作符的职责仅仅是分配内存,操作符返回一个未经处理(raw)的指针,未初始化的内存。 void* operator new(size_t size); 调用方式如下: void *rawMemo...
1. new 操作符(new operator) new 操作符做两件事:分配内存 + 调用构造函数初始化。 2. operator new 通常声明如下: operator new 操作符的职责仅仅是分配内存,操作符返回一个未经处理(raw)的指针,未初始化的内存。 void* operator new(size_t size); 调用方式如下: void *rawMemo...
Engauge Digitizer github repo 介紹 Engauge Digitizer 工具 曲线图转数据工具软件(Engauge Digitizer)提取文献中的数据 WebPlotDigitizer WebPlotDigitizer 其他资料 手把手教你从曲线图中提取原始数据 chart_digitizer
0. GPU驱动相关 sudo add-apt-repository ppa:oibaf/graphics-drivers 1. OpenCL 环境准备 1.1 查看 OpenCL 设备 # 查看 GPU 设备 lspci | grep -i vga sudo apt install clinfo 使用 clinfo 命令查看 OpenCL 版本。C++ 程序需要定义Open...
1. redis monitor # 运行一下命令,进入monitor模式,可以实时查看redis的命令执行情况 redis-cli monitor moniotor模式下,每执行一条redis命令,就会有类似如下输出: 1720185799.917896 [0 127.0.0.1:43768] "COMMAND" "DOCS" 1720185984.438276 [0 127.0....
1. 在字符中添加空格 有四种宽度的空格可以使用,如下表格: 语法 显示 \, a b \; a b \quad a b \qquad a b ...
通过结合使用epoll和inotify 实现监控功能的同时,以超时的方式实现轮询,适合线程退出。 int inotifyId = inotify_init(); if (-1 == inotifyId) { SPDLOG_WARN("inotify_init failed"); return; } int epfd = epoll_create(INOTIFY_FDS); if ...
1. 安装 gperftools 使用 gperftools Release页面 下载(不要使用git clone,且不要使用cmake编译,编译不生成pprof工具),编译命令: ./configure make && make install 安装graphviz: sudo apt-get install graphviz 2. 将 gperftools ...
例如编写CMake查找模块,名称为 Findgperftools.cmake,内容如下: # Try to find gperftools # Once done, this will define # # gperftools_FOUND - system has Profiler # GPERFTOOLS_INCLUDE_DIR - the Profiler include direc...
#include <iostream> #include <queue> #include <mutex> template <typename T> class ThreadSafeQueue { public: void push(const T& item) { std::lock_guard<st...
1. 使能 core dump # 查看是否使能 core dump, -a 显示所有设置 sudo ulimit -c # 使能 core dump,不限制core dump文件大小 sudo ulimit -c unlimited # 限制 core dump 文件大小为 2G sudo ulimit -c 4194304 # 关闭 core dump sudo ulimit -...