2020年1月26日

摘要: 本文为对不同场景下的构造函数调用进行跟踪。 构造函数 默认情况下,在 C++ 之后至少存在六个函数 默认构造/析构函数,复制构造/复制赋值,移动构造/移动赋值。以下代码观测发生调用的场景 #include <iostream> struct Foo { Foo() : fd(0) { std::co 阅读全文
posted @ 2020-01-26 20:20 文一路挖坑侠 阅读(1324) 评论(0) 推荐(0)

2020年1月19日

摘要: spdlog 基本结构分析 代码取自 V1.5.0, 代码堪称美学。 spdlog 是一个只有头文件的C++日志库,速度非常快,扩展性很强,更重要的是 社区活跃,文档齐全。 使用 参考官方的 example. {fmt} 的格式使用也需要熟悉一下,毕竟也进 C++20 了,什么垃圾流就快扫进历史的垃 阅读全文
posted @ 2020-01-19 16:25 文一路挖坑侠 阅读(8185) 评论(2) 推荐(2)

2019年12月26日

摘要: limlog 作一篇文章记录实现,驱动优化迭代。 代码仓库 用法 实现 后端实现 前端实现 日期时间的处理 线程id的获取 日志行的其他项处理 优化 整形字符串格式化优化 测试 benchmark 性能分析 TODO Change Log 参考 对日志库的 特点期望: 正确性,这个是最重要也是最基本 阅读全文
posted @ 2019-12-26 19:22 文一路挖坑侠 阅读(17833) 评论(8) 推荐(5)

2019年12月9日

摘要: 环境 实现机器为VMWare的虚拟机,操作系统为 Debian-11(无桌面版本),内核版本为 5.10.0,指令集为 AMD64(i7 9700K),编译器为 GCC-10. 代码 Lab 的代码克隆自 https://pdos.csail.mit.edu/6.828/2018/jos.git Q 阅读全文
posted @ 2019-12-09 19:12 文一路挖坑侠 阅读(1611) 评论(0) 推荐(0)

2019年11月20日

摘要: Graphviz Graphviz 是一个自动排版的作图软件,可以生成 png pdf 等格式。 dot 语法介绍 部分图形属性介绍 示例 使用VSCode进行预览生成 参考 dot 语言 Graphviz 构建组件为 图,节点,边,用属性对其进行描述。 以下是定义DOT语言的抽象语法,约束的规则如 阅读全文
posted @ 2019-11-20 13:52 文一路挖坑侠 阅读(53104) 评论(4) 推荐(14)

2019年11月13日

摘要: C 表达式中的汇编指令 asm 为 gcc 中的关键字,asm 表达式为在 C代码中嵌套汇编指令,该表达式只是单纯的替换出汇编代码,并不对汇编代码的含义进行解析。 asm 表达式有两种形式,第二种 asm-qualifiers 包含了 goto 语句。 第一种形式为常见的用法,AssemblerTe 阅读全文
posted @ 2019-11-13 17:25 文一路挖坑侠 阅读(1790) 评论(0) 推荐(2)

2019年10月31日

摘要: epoll(2) 源码分析 文本内核代码取自 5.0.18 版本,和上一篇文章中的版本不同是因为另一个电脑出了问题,但是总体差异不大。 引子留下的问题 关键数据结构 提供的系统调用 就绪事件相关逻辑 epoll 间的相互影响及处理 问题的解答 引子留下的问题 在上一篇文章中留下了几个问题,本文将针对 阅读全文
posted @ 2019-10-31 17:36 文一路挖坑侠 阅读(2105) 评论(0) 推荐(3)

2019年10月26日

摘要: epoll(2) 源码分析前的准备 本文代码取自内核版本 4.17 epoll(2) - I/O 事件通知设施。 epoll 是内核在2.6版本后实现的,是对 select(2)/poll(2) 更高效的改进,同时它自身也是一种文件,不恰当的比方可以看作 eventfd + poll。 多路复用也是 阅读全文
posted @ 2019-10-26 16:18 文一路挖坑侠 阅读(778) 评论(0) 推荐(0)

2019年10月18日

摘要: eventfd(2) 结合 select(2) 源码分析 本文代码选自内核 4.17 eventfd(2) - 创建一个文件描述符用于事件通知。 使用 源码分析 参考 #include <sys/eventfd.h> int eventfd(unsigned int initval, int fla 阅读全文
posted @ 2019-10-18 20:44 文一路挖坑侠 阅读(1688) 评论(0) 推荐(0)

2019年10月12日

摘要: poll(2) poll(2) 系统调用的功能和 select(2) 类似:等待一个文件集合中的文件描述符就绪进行I/O操作。 使用 实现 select(2) 的局限性: 关注的文件描述符集合大小最大只有 1024 文件描述符集合为顺序的,不能任意指定 fd,浪费占用的fd poll(2) 对 se 阅读全文
posted @ 2019-10-12 17:01 文一路挖坑侠 阅读(788) 评论(0) 推荐(1)

导航