定时器实现
了解一下通用的定时器实现, 大多数的通用库是实现其实都不是高精度的timer。我大概看了些,基本的实现都是timer fd + 一个红黑树存储(或者堆/跳表) 过期时间戳,然后用epoll来监听timer fd的读事件,然后在epoll的回调函数里面一次性处理过期的定时器。但是怎么设计task + loop + timer这一套东西,每个库都有自己的一套,核心其实都是这玩意 部分库实现了...
了解一下通用的定时器实现, 大多数的通用库是实现其实都不是高精度的timer。我大概看了些,基本的实现都是timer fd + 一个红黑树存储(或者堆/跳表) 过期时间戳,然后用epoll来监听timer fd的读事件,然后在epoll的回调函数里面一次性处理过期的定时器。但是怎么设计task + loop + timer这一套东西,每个库都有自己的一套,核心其实都是这玩意 部分库实现了...
一起学x86-64汇编 https://gpfault.net/posts/asm-tut-1.txt.html https://gpfault.net/posts/asm-tut-2.txt.html https://gpfault.net/posts/asm-tut-3.txt.html ...
基于就绪态的一些函数调用的思考 select, poll, epoll的内容 发现brpc的文档写的很棒,io 处理流的buffer read和write最好分成两个buffer。因为我遇到过回调ondata是裸指针的,然后在收一部分data的时候可以ondata ready给用户,用户直接在这里调用send data。 这一块内存会被反复的覆写,最好是分开,不然就一直copy数据...
perfbook,你可以在paul的blog官网下一pdf版本的pdf,他偶尔会更新 REF perfbook study note Locking in WebKit Understanding NUMA Architecture
发现一个写的挺好的constexpr的介绍, 知乎上有老哥已经开始翻译了 C++ 中 constexpr 的发展史!上 C++ 中 constexpr 的发展史!下 雾里看花:真正意义上的理解 C++ 模板(Template),这个也还可以
能找到的资料大多都是基于socketio去做ssl操作的,typical的记录一下,如果我们已经有了TCP的链路抽象,应该怎么在这个层次之上,实现一个简单的tls client的流程,server的相反就可以了 总结的来讲,ssl加解密的工作和io是分开的,这样做的好处是bio(basic io)能抽象为各类的io,比如socket io,file io。你也可以定义自己的io,只需要预定...
openssl在命令行层面有一些很方便的命令,比如s_client和x509。这里记录一些常用的命令。 s_client s_client命令可以简单的开启一个连接上的客户端,可以用来测试ssl连接。 常用的 openssl s_client -connect host:port -tls1_3 -servername "" X509 证书的数据管理 openssl x509...
记录一些常用的命令 1 nc 1 建立TCP连接 nc hostname port 2 监听TCP端口 nc -l -p port 监听UDP的命令是nc -u -l -p port 3 发送文件 nc -w 3 hostname port < file 4 接收文件 nc -l -p port > file 5 发送UDP数据 echo "data" |...
船新的构造提案,realloc STL algorithms for trivial relocation Polymorphic types aren’t trivially relocatable C++ 实现 shared_ptr / weak_ptr /enable_shared...
c++里的一些类型promotion,先随便看看一元+操作符的使用技巧 不过若是操作数为整数或无作用域枚举类型,一元 + 操作符会执行 Integral promotion,此时会发生隐式转换。例如 // unscoped enumeration enum Enum : unsigned int { enum_val_a, enum_val_b, enum_val_c }; ...