(更多…)
TL;DR
在类设计含有多重继承的内存布局下,对象的this指针是存在编译器隐含的偏移修正行为
现象如下:
首个base class并不需要修正,因为内存布局与derived class是重叠共用的,无论有无vptr的介入
其它base class由编译器修正this指针,需要付出轻微的运行时成本(多一条加法指令)
如果derived class隐藏了ba
实现一个xyz系列算是本博客的月指活了,这次写的是lockfree容器(硬核程度越来越高,以后咋低成本水文章啊)
声明
不建议自己从零造lockfree轮子,至少需要有paper支撑,或者从已有的项目中改进
否则无法证明代码是正确的
为此本文参考了模板库boost::lockfree的实现以及MS Queue的paper(Simple, Fast, and
声明
本文章是从较为实际的角度去分析C++内存模型,涉及到memory order,modification order和release sequence
虽然内容和概念相比于标准是有所删减的,但我希望这篇文章相比cppreference是更易于理解的
(更多…)
前言
这篇文章会介绍CFS的基本原理并从源码上分析流程
文章的解说顺序是按照我看源码的顺序展开的
(更多…)
写了一个C++实现的raft,这里就简单做些记录
(更多…)
当你想造一个轮子时,你发现需要为这个轮子再造另一个轮子
(更多…)
前段时间抱着玩票的性质搞了个协程库co
然后打算把它合并到鸽了一年的future网络库fluentNet
(更多…)
这篇文章用来分享我早段时间随便搞出来的协程轮子
(更多…)
(更多…)
看memory management永远不知道水有多深
(更多…)
这篇paper主要价值就是设计一个无敌的分布式kv
(更多…)
(更多…)
前言
Linux内核中的elevator layer就是IO调度层
之所以把IO视为电梯,是因为它的物理特性和生活上的电梯差不多:
消费者(电梯)远跟不上生产者(乘客等待上下楼)的速度
寻址方式说是随机访问(到哪都行),但其实条件苛刻(反方向哪怕只差一个楼层,也可能等半天)
(更多…)
这篇文章是90-Minute Guide!的简单阅读笔记
原文是一篇极佳的、点到为止的概述性文章,我推荐直接阅读
而不是看我这种比机翻还差劲,比原文更短但是对读者没有任何帮助的文章
但是,如果你希望有一个10-Minute Guide,可以考虑往下看看
(更多…)
(更多…)
不言而喻,一目了然
(更多…)
本来是想把整个Linux IO栈都大概整理一遍,限于工作繁忙,也只是把VFS往下一点的流程粗略翻了遍
下面会做一些简单的总结,由于说来话长,我不打算把每一处都说的特别详尽
毕竟(优质的)代码才是最好的文档
(更多…)
性能优化的关键在于解决性能的瓶颈,而IO从来都是难以解决的瓶颈之一
这篇文章主要描述Linux Kernel对于读操作下的按需预读算法,包括流程和实现
(更多…)
CRTP:吾与城北virtual孰美?
(更多…)
(更多…)
(更多…)
iterator / container / algorithm / traits,该有的都没有
(更多…)
由于日志库的需求,需要一个编译时排序来处理tag(模板的typename只能append!),所以尝试写了一版,工地C++选手头一回写这么一大串的template元编程
(更多…)
由于要做年轻人的第一次技术分享,因此我挑了个epoll实现原理作为课题,主要是先做下快速介绍,然后直接杠源码(长篇大论没人听警告)
(更多…)
鉴于C++标准库并没有提供侵入式容器供我们使用,这里只简单梳理一下侵入式容器的特性
(更多…)
深入探索g++钦定的西半球最快的排序算法
(更多…)
(更多…)
也许只是没用的技巧,但谁不喜欢折腾代码
(更多…)
轮子所用的定时器方案大概定型了,觉得可以对一下思路,讨论一下逐步扩展的实现
(更多…)
这个是我造轮子时的一些探索,涉及到简单的template、lambda、完美转发、SFINAE、policy等一连串的坑,在这里做一下记录。
(更多…)
最近在写一个库,有一个场景是std::vector存储一些对象,每次都是往后面添加,但是内部的元素可能会随机地失效(且不可恢复),这种场合下需要针对性地优化vector:
(更多…)
支持任意可调用对象,任意参数,任意作用域,跑的还快,go看后一言不发,惊呼C++不可战胜(x
(更多…)
简单记录一下这个拖了许久的小轮子
(更多…)
(更多…)
简述一下OJ项目中手写的Token验证服务设计过程
(更多…)
随便敲的,看看就好(被书折腾后凭感觉写的,可能小误
(更多…)
本篇是head first设计模式的读书笔记,关键的定义我会摘录书里的原话(一般比较简短),自己思考的部分不一定很正确,有错误请指出(又没人看唉)
(更多…)
(更多…)
早期的,基本乱翻,随便看
(更多…)