枫中眸zc 2021-09-27 10:21 采纳率: 100%
浏览 16
已结题

关于日志输入输出问题

概念:
日志输入:线程中记录日志到队列中;
日志输出:单开线程循环读取队列,写入txt中;
现象:之前有款软件,日志输入速度大于日志输出速度,导致运行程序越来越大,后来是通过删除部分不太重要的输入日志解决的。
求问:有什么比较好的思路,解决这种问题么?

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-09-27 10:32
    关注

    你的日志输出策略是什么样的呢?每次从队列读取一条写文件还是每次读取多条?给出几个建议供参考:
    1.每次读日志队列时,批量读取,而不是单条读取,读取后批量写入文件。(不要持续占用队列)
    也可以考虑建立两个队列,当一个队列写到一定量级后,去写第二个队列。读队列的时候先读取第一个队列,然后再去读取第二个队列,这两种方式都是减少频繁的加锁、解锁导致的效率问题。
    2.如果上述策略还不行,尝试增加日志级别,通过日志级别控制日志的量级,一些不必要的日志可以通过日志级别筛除

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月10日
  • 已采纳回答 11月2日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计