libgo v2.4-stable released
v2.4-stable是libgo的第一个稳定版,经过了线上环境的大规模考验,也修复了很多线上测试过程中发现的bug。
目前有200多台linux服务器、600多个进程基于此版本7×24小时地运行着。
主要变更
协程调度
1.删除ENABLE_SHARED_STACK选项
2.多线程调度算法采用work-steal, 可以通过设置关闭
3.优化切换速度, 每秒切换次数达到千万级
4.增加go_dispatch, 创建协程时可以指定执行的线程
内存管理
1.增加一个栈内存malloc/free函数自定义的机制, 用户可以基于此做内存池优化、调试代码嵌入等事情.
2.修复协程function对象的析构在协程外执行的bug
网络IO
1.每个线程各使用一个epoll
定时器
1.定时器根据设置定时的参数不同, 使用system(受系统时间影响)和steady(不受系统时间影响)两种计时方式.
system_clock::time_point使用system计时
steady_clock::time_point和duration使用steady计时