2020年10月18日

摘要: nginx 内存池 ngx_pool_t nginx 是自己实现了内存池的,所以在nginx ngx_pool_t 这个结构也随处可见,这里主要分析一下内存池的分配逻辑。 内存池实现了包括小块内存、大块内存和清理资源几种资源的处理,应该来说覆盖了绝大数的使用场景了。 相关结构定义 // 大块内存 t 阅读全文
posted @ 2020-10-18 23:37 文一路挖坑侠 阅读(636) 评论(0) 推荐(0) 编辑

2020年10月17日

摘要: ngx_align 值对齐宏 ngx_align 为nginx中的一个值对齐宏。主要在需要内存申请的地方使用,为了减少在不同的 cache line 中内存而生。 // d 为需要对齐的 // a 为对齐宽度,必须为 2 的幂 // 返回对齐值 #define ngx_align(d, a) ((( 阅读全文
posted @ 2020-10-17 21:48 文一路挖坑侠 阅读(646) 评论(0) 推荐(0) 编辑

2020年6月26日

摘要: SystemTap 从春哥(章亦春)那看到的关于SystemTap的介绍,让我对动态追踪这个功能颇为感兴趣,觉得这是一个非常有用的功能。 SystemTap对内核及用户态程序提供了动态追踪功能,用户可以自定探测事件来跟踪程序的运行情况,如函数的调用路径、CPU占用和磁盘IO等一系列可以探测的情况。有 阅读全文
posted @ 2020-06-26 22:10 文一路挖坑侠 阅读(5129) 评论(2) 推荐(0) 编辑

2020年5月9日

摘要: 一次内核 crash 的排查记录 使用的发行版本是 CentOS,内核版本是 ,在正常运行的情况下内核发生了崩溃,还好有 vmcore 生成。 准备排查环境 1. crash 2. 内核调试信息rpm,下载的两个 rpm 版本必须和内核版本一致 kernel debuginfo common x86 阅读全文
posted @ 2020-05-09 19:45 文一路挖坑侠 阅读(1483) 评论(0) 推荐(1) 编辑

2020年4月5日

摘要: LLVM 编码规范 LLVM Coding Standards "官网" | 历史翻译版本 "Github" "导论" "语言、库和标准" "C++ 标准版本" "C++ 标准库" "Go 代码准则" "机械的代码问题" "代码格式化" "注释" "头文件" "类概述" "method inform 阅读全文
posted @ 2020-04-05 22:07 文一路挖坑侠 阅读(3833) 评论(0) 推荐(1) 编辑

2020年2月5日

摘要: SFINAE 与 type_traits SFINAE 替换失败不是错误 (Substitution Failure Is Not An Error),此特性被用于模板元编程。 在函数模板的重载决议中应用此规则, 当将模板形参替换为显式指定的类型或推导的类型失败时,从重载集中丢弃这个特化,而非导致编 阅读全文
posted @ 2020-02-05 12:20 文一路挖坑侠 阅读(574) 评论(0) 推荐(0) 编辑

2020年2月2日

摘要: C++ 虚函数分析 虚函数调用属于运行时多态,在类的继承关系中,通过父类指针来调用不同子类对象的同名方法,而产生不同的效果。 C++ 中的多态是通过晚绑定(对象构造时)来实现的。 用法 在函数之前声明关键字 表示这是一个虚函数,在函数后增加一个 表示这是一个纯虚函数,纯虚函数的类不能创建具体实例。 阅读全文
posted @ 2020-02-02 17:27 文一路挖坑侠 阅读(463) 评论(0) 推荐(0) 编辑

2020年1月30日

摘要: lambda 表达式分析 构造闭包:能够捕获作用域中变量的匿名函数的对象,Lambda 表达式是纯右值表达式,其类型是独有的无名非联合非聚合类类型,被称为闭包类型(closure type),所以在声明的时候必须使用 来声明。 在其它语言如lua中,闭包的格式相对更为简单,可以使用 lambda 表 阅读全文
posted @ 2020-01-30 01:01 文一路挖坑侠 阅读(1236) 评论(0) 推荐(0) 编辑

2020年1月27日

摘要: 引用 左值引用,建立既存对象的别名 右值引用,可用于为临时对象延长生命周期 转发引用,保持函数实参的类别 悬置引用,对象生命周期已经结束的引用,访问改引用为未定义行为 值类别,左值,纯右值,亡值 std::move, std::forward 类型推导 引用塌缩(折叠) 可以通过模板或者 typed 阅读全文
posted @ 2020-01-27 21:57 文一路挖坑侠 阅读(722) 评论(0) 推荐(0) 编辑

2020年1月26日

摘要: new new 是C++ 中的关键字,有两个含义 1. new 表达式 2. 作为运算符的函数名,也就是 new 表达式 提供一个特定的内存分配格式,返回在存储空间上构造的对象或对象数组的一个 纯右值 指针。 语法 :: ( 可选 ) new (布置参数)( 可选 ) (类型) 初始化器( 可选 ) 阅读全文
posted @ 2020-01-26 20:20 文一路挖坑侠 阅读(1114) 评论(0) 推荐(0) 编辑

导航