v2.6是libgo的针对HTTP优化的版本,用于类似于HTTP这种半双工协议的场景下,性能相比上一个版本提升100%
主要变更
HOOK
- 增加安全signal的功能, 可以让signal在Run中触发, 编译时需使用参数 -DWITH_SAFE_SIGNAL=ON. 以此解决linux对signal里面调用的函数必须可重入的要求.
- Hook gethostbyname系列函数和gethostbyaddr系列函数,DNS解析阻塞也可以不阻塞线程了,具体实现依赖libcares. 编译时需使用参数 -DWITH_CARES=ON.
协程调度
- 优化协程切换响应速度, 100个协程频繁切换, 速度可达到1100万次/s
网络IO
- 默认使用ET模式,优化半双工协议场景的性能,提升100%
修复BUG
- 修复使用std::fstream时无法hook到close的bug.