实现一个xyz系列算是本博客的月指活了,这次写的是lockfree容器(硬核程度越来越高,以后咋低成本水文章啊)
声明
不建议自己从零造lockfree轮子,至少需要有paper支撑,或者从已有的项目中改进
否则无法证明代码是正确的
为此本文参考了模板库boost::lockfree的实现以及MS Queue的paper(Simple, Fast, and
声明
本文章是从较为实际的角度去分析C++内存模型,涉及到memory order,modification order和release sequence
虽然内容和概念相比于标准是有所删减的,但我希望这篇文章相比cppreference是更易于理解的
(更多…)
前言
这篇文章会介绍CFS的基本原理并从源码上分析流程
文章的解说顺序是按照我看源码的顺序展开的
(更多…)
(诈尸氵一篇meminfo)
文章还处于work in progress状态,先直接从OneNote上复制过来吧
(更多…)
写了一个C++实现的raft,这里就简单做些记录
(更多…)
当你想造一个轮子时,你发现需要为这个轮子再造另一个轮子
(更多…)
前段时间抱着玩票的性质搞了个协程库co
然后打算把它合并到鸽了一年的future网络库fluentNet
(更多…)
这篇文章用来分享我早段时间随便搞出来的协程轮子
(更多…)
(更多…)
看memory management永远不知道水有多深
(更多…)
(更多…)
这篇paper主要价值就是设计一个无敌的分布式kv
(更多…)
(更多…)
前言
Linux内核中的elevator layer就是IO调度层
之所以把IO视为电梯,是因为它的物理特性和生活上的电梯差不多:
消费者(电梯)远跟不上生产者(乘客等待上下楼)的速度
寻址方式说是随机访问(到哪都行),但其实条件苛刻(反方向哪怕只差一个楼层,也可能等半天)
(更多…)
这篇文章是90-Minute Guide!的简单阅读笔记
原文是一篇极佳的、点到为止的概述性文章,我推荐直接阅读
而不是看我这种比机翻还差劲,比原文更短但是对读者没有任何帮助的文章
但是,如果你希望有一个10-Minute Guide,可以考虑往下看看
(更多…)
(更多…)
不言而喻,一目了然
(更多…)
本来是想把整个Linux IO栈都大概整理一遍,限于工作繁忙,也只是把VFS往下一点的流程粗略翻了遍
下面会做一些简单的总结,由于说来话长,我不打算把每一处都说的特别详尽
毕竟(优质的)代码才是最好的文档
(更多…)
这是EP8剧中贝伦给出的推理游戏,整个流程非常短,有点意思,并且已经比主线中的文字游戏简化太多了,我就花了点时间摘抄下来
(更多…)
性能优化的关键在于解决性能的瓶颈,而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
(更多…)
智能指针包括shared_ptr,weak_ptr和unique_ptr,
如果接口中作为参数去传递,那么需要考虑是pass by value还是by ref,
如果传入了,又该如何使用才能尽量鲁棒,
可有够纠结的
(更多…)
移动让复杂对象的值语义也有了高效的可能性,但还是要看数据结构的内存布局
(更多…)
简单记录一下这个拖了许久的小轮子
(更多…)
简单实用的谷歌黑科技,并做了简单的实现
(更多…)
虽然说是没啥卵用的东西,但学习证明它为什么是互斥的还是有点意思
(更多…)
(更多…)
(更多…)
(更多…)
(更多…)
(更多…)
(更多…)
众所周知,求最大流要是没有反向边,基本都是错的
(更多…)
(更多…)
(更多…)
(更多…)
(更多…)
TV第一季
(更多…)
肝了好几个小时的成品
大概通过了洛谷11/12个测试点(其中一个TLE,时限开的太紧了)
(更多…)
简述一下OJ项目中手写的Token验证服务设计过程
(更多…)
所有考试总算考完了,于是我被LAJi学校坑去生产线QAQ
趁着脑袋还记得先马一下(距离遗忘DSP所有内容还有30min
(更多…)
随便敲的,看看就好(被书折腾后凭感觉写的,可能小误
(更多…)
(更多…)
统计自2019.3开始看的书
(更多…)
本篇是head first设计模式的读书笔记,关键的定义我会摘录书里的原话(一般比较简短),自己思考的部分不一定很正确,有错误请指出(又没人看唉)
(更多…)
NanjingOnsite:三维坐标下给出$n$个点$p_i$,找到一个点$best$使得$max_{i=1}^ndis(best,p_i)$最小,$n\le 100$
(更多…)
题意:给出$a[1...n]$,共$n$次操作,每次删除一个位置$p_i$(强制在线),此时区间会变为两个分离的区间,求每次操作的最大区间逆序对
(更多…)