上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 64 下一页
摘要: 目前有很多网络库,其中libevent是基于Reactor实现的,而boost.asio是基于Proactor实现的。Reactor和Proactor模式的主要区别就是真正的操作(如读/写)是由谁来完成的,Reactor中需要应用程序自己读取或者写入数据,而在Proactor模式中,应用程序不需要进 阅读全文
posted @ 2021-08-22 18:36 codestacklinuxer 阅读(40) 评论(0) 推荐(0) 编辑
摘要: web服务器卡死,登陆到后台查看问题; ps aux执行的时候发现卡死, 重新ssh 登陆 strace ps 发现如下结果: 使用gdb 调试也是卡死! 使用top -b 查看所有的进程,发现 之前的ps 的进程为D状态, 同时web服务器 部分线程进程为D状态; dmesg 查看结果发现: [2 阅读全文
posted @ 2021-08-18 11:08 codestacklinuxer 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 并发(concurrency)和并行(parallelism) 前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生; 并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。 并行(parallelism)是指同时发生 阅读全文
posted @ 2021-08-15 16:15 codestacklinuxer 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 函数的传递参数方式: 传递结构体时:会拷贝结构体中的全部内容; 传递结构体指针时:会拷贝结构体指针; 将指针作为参数传入某个函数时,函数内部会复制指针,也就是会同时出现两个指针指向原有的内存空间,所以 Go 语言中传指针也是传值 Go 语言的整型和数组类型都是值传递的 也就是在调用函数时会对内容进行 阅读全文
posted @ 2021-08-13 21:37 codestacklinuxer 阅读(591) 评论(0) 推荐(0) 编辑
摘要: make 的作用是初始化内置的数据结构,也就是我们在前面提到的切片、哈希表和 Channel2; new 的作用是根据传入的类型分配一片内存空间并返回指向这片内存空间的指针3; 在代码中往往都会使用如下所示的语句初始化这三类基本类型,这三个语句分别返回了不同类型的数据结构: slice := mak 阅读全文
posted @ 2021-08-11 17:11 codestacklinuxer 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 以前看互斥锁自旋锁实现的时候,看过RET_IP,只是了解到其为当前函数的返回地址;今天系统的看下这几个宏 __builtin_return_address(0)的含义是,得到当前函数返回地址,即此函数被别的函数调用返回时的地址。 __builtin_return_address(1)的含义是,得到当 阅读全文
posted @ 2021-08-04 10:37 codestacklinuxer 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 执行 ./install/bin/staprun ./sigkill.ko 结果发现脚本执行命令刷屏了!! debug_bin]$ ./install/bin/staprun ./sigkill.ko sig[17] SIGCHLD was sent to sh (pid:15237) by exe 阅读全文
posted @ 2021-08-03 19:53 codestacklinuxer 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 首先需要弄清楚 进程被干掉的过程是怎样的? 一般使用kill -9 pid 来杀死进程 , 那么进程是怎样收到signal以及处理signal呢? 那目前有哪些现成的工具可以使用探测signal呢? 参考tapset文档 #! /usr/bin/env stap # sigkill.stp # Co 阅读全文
posted @ 2021-08-02 10:03 codestacklinuxer 阅读(321) 评论(0) 推荐(1) 编辑
摘要: redis 中使用hash表实现字典:首先看hash表的实现 typedef struct dictht {//dictht hash桶存在于dict结构中 //每个具体table[i]中的节点数据类型是dictEntry 结构表示, 每个 dictEntry 结构都保存着一个键值对: // 哈希表 阅读全文
posted @ 2021-08-01 14:12 codestacklinuxer 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 目前遇到线上内存泄露 valgrind 不能用 使用smaps gdb dump 内存后使用string 来分析,目前没有看到结果 使用ltrace 跟踪malloc mmap 等?还是使用systemtap中跟踪 user-process 继续分析一下 : 目前arm 版本 systemtap u 阅读全文
posted @ 2021-07-28 17:07 codestacklinuxer 阅读(110) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 64 下一页