- 博客(4)
- 收藏
- 关注
原创 reactor原理与实现
reactor 模型开发效率上比起直接使用 IO 复用要高,它通常是单线程的,设计目标是希望单线程使用一颗 CPU 的全部资源,但也有附带优点,即每个事件处理中很多时候可以不考虑共享资源的互斥访问。可是缺点也是明显的,现在的硬件发展,已经不再遵循摩尔定律,CPU 的频率受制于材料的限制不再有大的提升,而改为是从核数的增加上提升能力,当程序需要使用多核资源时,reactor 模型就会悲剧, 为什么呢?
2023-08-07 23:57:51 345
原创 2021-11-12 linux下core文件的生成方式以及调试手段
一、什么是core文件?在程序发现段错误等不寻常退出时,例如错误的内存操作等,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时调试信息,前提是编译时添加-g参数),之后使用gdb调试生成的core文件,来定位到导致程序崩溃的代码所在的具体位置。二、linux环境配置支持可生成 core 文件1、core文件开关使用命令 ulimit -c 查看core开关,如果为0表示关闭,不会生成core文件;使用命令 ulimit -c [filesize] 设置core文件大小;使用命令
2021-11-12 11:43:16 2886
原创 2021-03-02 代码中使用的宏定义如何通过编译选项来设置
代码中使用的宏定义如何通过编译选项来设置之前在看一个开源项目的源码过程中遇到了一些宏定义,全局搜索了此宏定义的位置,但是最终并没有从某个 “.h”文件中找到相关的定义,中间有出现了一些疑惑,为什么没有在 “.h”文件中找到它的定义,后来发现这个宏除了在代码中出现使用,也有出现在Makefile文件中,它是以编译选项的方式添加的,之后自己写了个小的demo做了个测试。测试相关代码:#include <stdio.h>int main(){#ifdef OUT_STRING
2021-03-02 10:38:59 528
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人