整理:内存一致模型
1. CPU Cache 内部结构 一个core内部结构: cache store buffer invalidate queue 结构如下图所示: 1.1. Cahce一致性协议 MESI MESI是CPU内部多个core同步通讯协议,保证多个core中的cache的数据一致性。MESI这四个字母分别代表了每一个cache line可能处于的四种状态:Mo...
1. CPU Cache 内部结构 一个core内部结构: cache store buffer invalidate queue 结构如下图所示: 1.1. Cahce一致性协议 MESI MESI是CPU内部多个core同步通讯协议,保证多个core中的cache的数据一致性。MESI这四个字母分别代表了每一个cache line可能处于的四种状态:Mo...
1. MMU 结构以及工作过程 大多数使用MMU的机器采用内存分页机制,虚拟地址空间以页(Page)为单位,相应的,物理地址空间也被划分为页帧(Frame)。页帧必须与页保持相同的大小,通常为4KB,对于大页,页帧可以是2MB或1GB。大页一般用于服务器,用于系统分配大量数据,减少缺页中断的发生。 MMU通过页表(Page Table)将虚拟地址映射到物理地址,页表存储在主存中,由系统内...
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...