总结:内存访问优化
1. 虚拟内存分配 1.1 mmap mmap用于建立文件映射,或者匿名映射。 当用于文件映射时,mmap将文件内容缓存进内核空间的page cache里面,然后将用户的一段虚拟内存空间直接映射到page cache。用户通过访问这段虚拟内存,直接读写内核空间上的page cache,避免buffer拷贝开销及用户态的切换。 用mmap用户建立匿名映射时,将用户空间的一段虚拟内存...
1. 虚拟内存分配 1.1 mmap mmap用于建立文件映射,或者匿名映射。 当用于文件映射时,mmap将文件内容缓存进内核空间的page cache里面,然后将用户的一段虚拟内存空间直接映射到page cache。用户通过访问这段虚拟内存,直接读写内核空间上的page cache,避免buffer拷贝开销及用户态的切换。 用mmap用户建立匿名映射时,将用户空间的一段虚拟内存...
0. DBSCAN 算法及 K-D 树介绍 DBSCAN算法相关概念: 邻域半径 eps。 核心点,最少核心点 minPts。 直接密度可达。 密度可达。 密度相连。 K-D树的时间复杂度: Kdtree 算法的构建时间复杂度为 O(nlogn),搜索时间复杂度最好为 O($\log_2 N$),最坏为 O($N^{1-1/k}$)。 基于k-d ...
依赖项安装 sudo apt-get update sudo apt-get install -y build-essential cmake pkg-config sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev sudo apt-get install -y libavcodec-dev libavform...
判断操作系统 IF (CMAKE_SYSTEM_NAME MATCHES "Linux") ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows") ELSEIF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") ELSE () MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NA...
bash alias ################### # bash alias alias g='git status -sb' alias ll='ls -alF' alias la='ls -A' alias l='ls -ltrhA' alias gl='ls|grep --color' # alias .='cd ../' # alias ..='cd ../..' al...
1. RANSAC 算法过程 最小二乘法拟合只进行一次迭代,计算所有离散点平均值,得到最终拟合直线或曲线。 RANSAC通过多次迭代,寻找拟合直线或曲线的最佳(最近)权重的点。第N次拟合,得到第N次迭代的内点(集合)。第N+1次迭代,得到第N+1次的内点(集合),如果第N+1次迭代计算的内点其权重大于第N次迭代的内点的权重,则更新最佳内点为第N+1次的内点(集合)。 其入参有: ...
CMake 查找 Intel TBB find_package( TBB COMPONENTS tbb tbbmalloc tbbmalloc_proxy REQUIRED) if(TBB_FOUND) message(STATUS "TBB version: ${TBB_VERSION}") endif() 链接引入 TBB 库 if (MSVC)...
std::function 可以将函数,函数对象(仿函数),lambda表达式包装成一个对象。std::function对象本身可以作为函数参数,并且是可复制的(复制构造、赋值)。 1. 封装函数指针 int add(int a, int b) { return a + b; } int main() { std::function<int(int, int)> f =...
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)将虚拟地址映射到物理地址,页表存储在主存中,由系统内...