0
点赞
收藏
分享

微信扫一扫

嵌入式硬件库的基本操作方式与分析

快乐小鱼儿_9911 2023-10-23 阅读 15
c++

文章目录

一、日志库模型

在这里插入图片描述

muduo日志库是异步高性能日志库,其性能开销大约是前端每写一条日志消息耗时1.0us~1.6us。

采用双缓冲区(double buffering)交互技术。基本思想是准备2部分buffer:A和B,前端(front end)线程往buffer A填入数据(日志消息),后端(back end)线程负责将buffer B写入日志文件。当A写满时,交换A和B。如此往复。

实现时,在后端设置一个已满缓冲队列(Buffer1~n,2<=n<=16),用于缓存一个周期内临时要写的日志消息。

这样做到好处在于:

  • 1)线程安全;2)非阻塞。

这样,2个buffer在前端写日志时,不必等待磁盘文件操作,也避免每写一条日志消息都触发后端线程。

异常处理:

  • 当一个周期内,产生过多Buffer入队列,当超过队列元素上限数量值25时,直接丢弃多余部分,并记录。

组成部分

  • muduo日志库由前端和后端组成。

参考

  • muduo笔记 日志库(一)
  • muduo笔记 日志库(二)
举报

相关推荐

0 条评论