复习:RVO NRVO and std::move
RVO 以及 NRVO RVO:返回值优化,其功能为:消除子函数返回的临时对象导致的拷贝构造。 NRVO:其功能为:消除子函数中返回的局部对象导致的拷贝构造。 class Object { //... }; Object getObjRVO() { return Object(); // RVO } Object getObjNRVO() { Object...
RVO 以及 NRVO RVO:返回值优化,其功能为:消除子函数返回的临时对象导致的拷贝构造。 NRVO:其功能为:消除子函数中返回的局部对象导致的拷贝构造。 class Object { //... }; Object getObjRVO() { return Object(); // RVO } Object getObjNRVO() { Object...
1. 动态继承运行时时间损耗 每个 virtual 方法,都需要通过指针查找到虚函数入口(间接寻址),且可能引起I-Cache cache miss; virtual 方法,不能被优化为inline,针对一些短小的函数,时间损耗较大; 2. CRTP 使用举例:子类也是 template 模板类 template <typename DerivedT> clas...
1. TBB 简介 Intel TBB主要功能模块: 并行算法 任务调度 并行容器 同步原语 内存分配器 1.1. 并行算法 parallel_for parallel_reduce parallel_scan parallel_do parallel_sort parallel_invoke pipeline, parall...
滤波器资料 Digital Signal Processing github – related sources 功率密度谱 (PSD) 资料 功率密度谱(Power Spectral Density)笔记 white noise filtering
关于mmap介绍,见之前文章 总结:内存访问优化(2024-08-13)。 使用跨平台支持的三方库github – mio。 1. 使用 mio 映射内存读取文件 相关头文件: #include <chrono> #include <filesystem> #include <fstream> #include <string> #i...
1. view – 返回子集 sub_range #include <ranges> using dataset_slice_t = std::ranges::subrange<std::vector<rias::data_type::sample_data_t>::iterator>; dataset_slice_t sub_range(it_min...
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...