摘要:
B+树重要操作 中间节点 中间节点的key,与其对应的指针的原则是,小于key的元素在其指针指向的节点中 中间节点的key可以看成是右斜着排放的,即小于等于key的节点由key对应的指针指定,最有一个指针指向大于最右侧key的节点 分裂 当中间节点数量满了时,进行分裂,新生成一个相邻的中间节点rig 阅读全文
摘要:
boltdb 网上关于boltdb的文章有很多,特别是微信公众号上,例如: boltdb源码分析系列-事务-腾讯云开发者社区-腾讯云 (tencent.com) 这些文章都写的挺好,但不一定覆盖了我所关注的几个点,下面我把我关注的几个点就来下来。 node page bucket tx db的关系 阅读全文
摘要:
说明 一直听说epoll的饥饿场景,但是从未在实际环境中面对过,那么能不能模拟出来呢?实际的情况是怎样呢? 模拟步骤 基于epoll写一个简单的tcp echo server,将每次read返回的字节数打印出来 模拟一个客户端大量写入 测试其他客户端能否正常返回 Server代码 #include 阅读全文
摘要:
使用要点 边缘模式(ET)与水平模式(LT)区别 下面内容来自linux man page The epoll event distribution interface is able to behave both as edge-triggered (ET) and as level-trigge 阅读全文
摘要:
理解程序的执行 我们要知道CPU可以自由地访问寄存器、内存。另外,程序是由操作系统执行的,所以操作系统能够控制程序的所有执行情况,限制程序的行为。 程序地执行过程: 程序是一个二进制文件,包含程序的代码指令、代码中的文本信息等(参考C语言的程序的各种段) 执行一个程序后,会将这个二进制加载到内存中, 阅读全文
摘要:
环境 redis 7.2.5 主频 核心数 内存 2.5GHz 32 64GB 测试结论 当前场景下redis单线程、多线程表现差异不大 使用pipeline模式可以显著提高基准性能 非pipilie下redis性能再12~13w左右 pipiline下redis性能在35w左右 测试记录 单线程r 阅读全文
摘要:
#include <stddef.h> #include <iostream> struct s1{ int a; int b; }; #pragma pack(8) struct s2{ char c; int a; double b; }; struct s3 { char b[10]; dou 阅读全文
摘要:
静态托管 我们最常接触到的静态托管是github pages,它的常见工作模式是在github上创建一个仓库,使用hexo类的工具初始化仓库,编写markdown文件,生成静态页面,推送到github上完成页面更新,比如这样一个静态的网站。 局限性 原生静态托管的局限性在于它的更新通常需要重新将ma 阅读全文
摘要:
效果 绿色的F表示右键点击插旗的地方 红色的格子表示点击到了地雷 原理 主时间循环 基本上GUI应用都会有一个主循环,用来接收各种事件,并按照时间类型进行不同的处理。 while True: for event in pygame.event.get(): if event.type == pyga 阅读全文
摘要:
用途 在处理多个 socket 套接字的时候,会很自然的遇到一个问题:某个套接字什么时候可读?什么时候可写?哪些套接字是需要关闭的?我们可以回忆一下,一般我们在最开始编写socket程序的时候,send,recv都是同步的,send完后就傻等着recv。这种模式的一个很大的问题是,recv会占用一整 阅读全文