这是一个错误修复、性能提高、降低内存使用的版本,解决了下列问题:
- 保证在单个线程退出的时候自动删除缓存(而不是等到zlog_fini才释放), 用atexit来注册函数解决主线程退出的问题。这样,即使大规模的创建销毁线程,zlog依然可以把缓存大小控制住,和存活的线程数量成线性比例。
- 缓存所有的时间字符串,保证所有的%d在strftime的时候都能每秒缓存,达到和原先%D一样的速度,这样无论在配置中用了多少%d的时间串,都能保证最多每秒调用一次strftime,也就保证了性能。
- 鉴于上面那点,去掉%D的使用,虽然库还支持,但文档和实例代码都用%d。
- 修复makefile静态链接zlog-chk-conf。
- 其他一些github上提出的对象销毁的问题。
必须感叹一下,写一个线程安全、正确无误函数库实在很困难。
不过最终能达到自己满意的结果,一切辛苦都是值得的!