摘要: epoll机制 wrk用非阻塞多路复用IO技术创造出大量的连接,从而达到很好的压力测试效果。epoll就是实现IO多路复用的关键。 本节是对epoll的本质的学习总结,进一步的参考资料为: 《深入理解Nginx:模块开发与架构解析(第二版)》,陶辉 首先分析网络数据接收模型。 计算机分为硬件中断和软 阅读全文
posted @ 2021-10-20 21:12 goto2091 阅读(296) 评论(0) 推荐(1) 编辑
摘要: 什么是idle进程? linux操作系统的启动过程: BIOS加电自检,从MBR中启动引导程序,再由引导程序启动linux内核,知道内核启动shell,用户可以操作该系统。操作系统的pid0进程在创建init进程后,pid=0的进程调用cpu_idle()变成了idle进程。原始进程是在创建pid= 阅读全文
posted @ 2021-05-17 19:21 goto2091 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 此篇文档介绍了IOMMU相关的信息: https://blog.chaosjohn.com/Check-VT-D-or-IOMMU-under-Linux.html iommu和vt-d都是io半虚拟化的一种技术,两者很接近,只不过iommu是AMD的,vt-d是Intel的。 IO半虚拟化对比IO 阅读全文
posted @ 2021-05-16 13:56 goto2091 阅读(3993) 评论(0) 推荐(0) 编辑
摘要: Linux内存基础信息检查 linux系统中,关于memory的常用基本信息,有Total Memory size,和memory capacity,memory speed,以及NUMA是否支持。NUMA支持可以通过lscpu查看numa node是否大于1进行判断。memory size是指当前 阅读全文
posted @ 2021-05-14 22:06 goto2091 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 首先是在模块a.js中声明一个可导出(export)的数据结构,例如: export class ModelInfo{ id: string; name:string; } 其次是在模块b中声明可导出的函数,该函数中有模块a的modelInfo类型参数. 函数体中对modelinfo对象进行赋值。 阅读全文
posted @ 2021-04-17 21:42 goto2091 阅读(652) 评论(0) 推荐(0) 编辑
摘要: python的一切数据类型都是对象。但是python的对象分为不可变对象和可变对象。python的变量是引用,对python变量的赋值是引用去绑定该对象。 可变对象的数据发生改变,例如列表和字典,引用不会更改绑定对象,毕竟本身就是用于增删改查的,频繁地产生新对象必然导致开销巨大,只需要该对象内部变化 阅读全文
posted @ 2021-01-23 19:12 goto2091 阅读(469) 评论(0) 推荐(0) 编辑
摘要: C++ primer plus 16.2节介绍了auto_ptr,该模板类在C++11中已弃用,目前已被shared_ptr代替。 auto_ptr又叫做智能指针,用于管理动态内存分配的用法。 为什么要有auto_ptr? 首先看一个例子, void remodel(string &str){ st 阅读全文
posted @ 2020-10-12 17:43 goto2091 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一般来说,c语言的数组的初始化可以通过三种方式: {0},在声明时使用,如 int a[10]={0} 使用memset, memset(array,0,sizeof(array)) 用for循环赋值 C语言的数组可以这样声明,int a[]= {1,2,3},即不用事先计算长度,但是通过初始化的值 阅读全文
posted @ 2020-10-05 16:47 goto2091 阅读(2287) 评论(0) 推荐(0) 编辑
摘要: 给定一个排序数组,你需要在 原地 删除重复出现的元素, 使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组 并在使用O(1)额外空间的条件下完成。 我的思路: 原地删除,不用将原数组的空间缩小,所采用的是将数组的前面部份更新为不重复的子数组然后得到该部 阅读全文
posted @ 2020-10-03 17:33 goto2091 阅读(104) 评论(0) 推荐(0) 编辑
摘要: int main(){ string input; vector<string> arr; while(cin >> input) { cout << "start"<<endl; arr.push_back(input); } cout << arr[arr.size()-1].length() 阅读全文
posted @ 2020-10-02 17:47 goto2091 阅读(444) 评论(0) 推荐(0) 编辑