抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

CPP中的左值和右值概念

CPP中的左值和右值概念Overview 语法上能取地址就是左值 有名引用本身是左值, 无名右值引用(std::move()的返回)是右值 const左值引用(const T& val = 6)引用右值, 可以编译通过。 因为与右值不指代对象, 没有”存储”的语义没有冲突 性能上没差别, 引用都可以避免拷贝 左值引用可以使用const T&引用右值 右值引用可以使用std::...

LD_PRELOAD劫持

LD_PRELOAD tips很多程序都需要链接共享库才能运行, 链接共享库默认会从系统/usr/lib目录中查找, 然后链接.so文件。而且对于同名函数, 只会识别最先出现的那一个。指定LD_PRELOAD变量就能让链接器先去找LD_PRELOAD指定的路径再去找默认路径, 从而实现对函数劫持。 详见man ld.so 实验例子我们可以通过strace查看一个程序执行过程中使用到的系统调用...

给neovim配置项目信息

给neovim配置项目信息为什么要配置项目信息呢? compile_commands.json文件不行吗? 主要是为了刚开始编码时能有一些信息, 所以直接简单地手写一下.ccls文件或者.clangd文件会方便一点。 clangd clangd file .clangd文件由一个个片段(fragment)组成, 片段间可以使用---分割。本质就是解析成yaml, 所以配置是key valu...

Bitcask A Log-Structured Hash Table for Fast Key/Value Data

AbstractBitcask是一种基于哈希表的Log-Structured的KV存储结构。特点是简单, 且有足够好的速度和质量。 与LSM tree有点类似, 都利用了内存和外存配合, merge。 内存中的keydir哈希表使用文件和位置信息做数据索引(value = file + offset), 外存的log-structured做数据存储。 Overview每个bitcask实例都...

FFMPEG

AbstractPreface基本使用自动分析后缀, 然后转换格式, 可以转到音频, 如后缀.mp3 1ffmpeg -i input.t1 ouput.t2 指定编码器 1ffmpeg -i input.t1 -c:v libx264 -preset xxx -crf 22 ouput.t2 -c:v TODO?? coder:video libx264是ffmpeg提供的一个纯软件...

XPC - Architectural Support for Secure and Efficient Cross Process Call

XPC: Architectural Support for Secure and Efficient Cross Process Callabs 数据和逻辑分离, matedata和data分离 还有其他? 内核值参与简单的工作 -> 解决传输的问题 XPC如何解决 TOCTTOU问题? xcall, xret xcall-entry xcall-cap relay-se...

Persistent Memory软硬件结合方向的调研

abstraction基于新硬件的存储系统性能优化 已经进行了哪些研究 有哪些创新性方法取得了哪些结果为什么对这个方向感兴趣 通过这段时间对实验室工作的调研和论文阅读我大概知道了实验室的战略方向和该方向的一些前沿研究。 首先我感受到研究的基本思路是: 非易失型存储设备PM(Persistent memory)的出现模糊了当前系统架构”极端存储”和”极端内存”的界限, 需要对这种新硬件提供支...

CMU15-445学习笔记(下)

课程笔记ch14 Query Planning Optimization I Hardest part of building a DBMS $$$, 人们也开始考虑使用ML做优化 基本思路: 修改查询语句 如规约常量, 如先选择再连接 与具体数据无关, 可以记录些元数据(catalog)用于优化 灵活cost model 执行计划的大题框架: 用户输入 SQL重写(优化) 解...

CMU15-445学习笔记(上)

CodingGoogle c++ style guide 检查丑代码: 1234make formatmake check-lintmake check-censoredmake check-clang-tidy Hybrid OS 操作系统中的启发(可能有用) fs: 分段多级索引 Mind Map Storage 缓存管理策略 lru/mru/clock 磁盘文件优化 hea...

The Hapdoop Distributed File System

The Hapdoop Distributed File System论文笔记三类分布式存储系统的区别有三类存储系统:块存储系统, 对象存储系统, 文件存储系统。块存储面向的用户是软件系统,文件存储面向的用户的人,对象存储面向的用户是其他计算机软件 文件存储 数据存储在文件系统上,用户通过文件路径索引获取到文件,底层文件系统会解析文件系统会以目录树的方式解析文件系统 优点:用户可以以”目录...