2020年1月19日

摘要:spdlog 基本结构分析 代码取自 "V1.5.0" , 代码堪称美学。 "spdlog" 是一个只有头文件的C++日志库,速度非常快,扩展性很强,更重要的是 社区活跃,文档齐全 。 使用 1. 参考官方的 "example" . 2. {fmt} 的格式使用也需要熟悉一下,毕竟也进 C++20 阅读全文
posted @ 2020-01-19 16:25 小胖西瓜 阅读 (113) 评论 (0) 编辑

2019年12月26日

摘要:limlog 作一篇文章记录实现,驱动优化迭代。 "代码仓库" "用法" "实现" "后端实现" "前端实现" "日期时间的处理" "线程id的获取" "日志行的其他项处理" "优化" "整形字符串格式化优化" "测试" "benchmark" "性能分析" "TODO" "Change Log" 阅读全文
posted @ 2019-12-26 19:22 小胖西瓜 阅读 (369) 评论 (0) 编辑

2019年12月9日

摘要:链接 在实际操作的过程中,测试的数据和 CS:APP 里面的内容有一些出入了,如重定位的方式,现在默认都使用 GOT+PLT 的方式进行重定位,与此带来的是 被干掉,使用 GOT 的方式访问。 "编译过程" "静态链接" "目标文件" "可重定位目标文件" "符号解析" "链接静态库" "重定位" 阅读全文
posted @ 2019-12-09 19:12 小胖西瓜 阅读 (100) 评论 (0) 编辑

2019年11月20日

摘要:"Graphviz" Graphviz 是一个自动排版的作图软件,可以生成 png pdf 等格式。 "dot 语法介绍" "部分图形属性介绍" "示例" "使用VSCode进行预览生成" "参考" dot 语言 Graphviz 构建组件为 图,节点,边,用属性对其进行描述。 以下是定义DOT语言 阅读全文
posted @ 2019-11-20 13:52 小胖西瓜 阅读 (819) 评论 (0) 编辑

2019年11月13日

摘要:C 表达式中的汇编指令 asm 为 gcc 中的关键字,asm 表达式为在 C代码中嵌套汇编指令,该表达式只是单纯的替换出汇编代码,并不对汇编代码的含义进行解析。 asm 表达式有两种形式,第二种 包含了 语句。 第一种形式为常见的用法,AssemblerTemplate 和 OutputOpera 阅读全文
posted @ 2019-11-13 17:25 小胖西瓜 阅读 (154) 评论 (0) 编辑

2019年10月31日

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

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 小胖西瓜 阅读 (153) 评论 (0) 编辑

2019年10月18日

摘要:eventfd(2) 结合 select(2) 源码分析 本文代码选自内核 4.17 eventfd(2) 创建一个文件描述符用于事件通知。 "使用" "源码分析" "参考" eventfd 作为一个非常简单的抽象文件,每个文件描述符都对应一个在内核空间维护的 , 一个无符号64位整形的计数器,而e 阅读全文
posted @ 2019-10-18 20:44 小胖西瓜 阅读 (145) 评论 (0) 编辑

2019年10月12日

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

2019年9月25日

摘要:select(2),同步的 I/O 复用 直接看 epoll 的源码把自己绕晕了,先整个简单点的下手。 "使用" "源码分析" select(2) 提供的用户接口 1. 第 1 个参数为最大的文件描述符加 1 2. 第 2 3 4 个参数依次为读写异常需要检查的结构体 3. 第 5 个参数为超时时间 阅读全文
posted @ 2019-09-25 20:22 小胖西瓜 阅读 (121) 评论 (0) 编辑

导航

统计