yukke's blog

string/ostringstream/vector的性能问题

其实最悲伤的一点是,我在之前的代码里大量用到了ostringstream,当时没有意识到这玩意其实在多线程下可能是有副作用的。 查资料的时候发现,ostringstream在构造的时候有加锁行为,在解释一些宽字符串(如汉字)的时候,依赖执行环境的本地化策略,一个可执行文件在运行前是无法确定这些转换策略的,所以ostringstream在构造的时候需要通过 std::locale()来获取本...

定时器实现

了解一下通用的定时器实现, 大多数的通用库是实现其实都不是高精度的timer。我大概看了些,基本的实现都是timer fd + 一个红黑树存储(或者堆/跳表) 过期时间戳,然后用epoll来监听timer fd的读事件,然后在epoll的回调函数里面一次性处理过期的定时器。但是怎么设计task + loop + timer这一套东西,每个库都有自己的一套,核心其实都是这玩意 部分库实现了...

© SimonCho. Some rights reserved.

Using the Chirpy theme for Jekyll.

Trending Tags