【问题标题】:the program block because of logs由于日志而导致程序阻塞
【发布时间】:2019-10-12 17:43:31
【问题描述】:

我有一个用 c++ 创建的程序,当我启用调试模式时,由于日志量大而导致程序阻塞,有什么解决方案或想法可以避免在调试模式下阻塞,或者有没有智能的方法来创建以调试模式登录

【问题讨论】:

  • 取决于您的日志记录解决方案:您可以更改日志级别,以便只记录警告和错误。您可以完全禁用日志记录。如果您要登录到文件,则登录到 RAM 可能会加快速度。您可以设置一个 RAM 驱动器并将其用作日志文件目标。或者找到更好、更优化的日志记录解决方案。谷歌快速搜索:github.com/gabime/spdlog

标签: c++ poco


【解决方案1】:

与无缓冲 I/O 相比,使用缓冲 I/O 可以加快处理速度。请参阅this stackoverlow question 了解更多信息。但是,如果您的程序崩溃,可能并非所有数据都已写入日志文件,这将使诊断崩溃原因变得更加困难。因此,应在潜在崩溃之前立即刷新缓冲区,例如使用fflushstd::flush,具体取决于您用于输出的函数。

不过,您可能已经在使用缓冲 I/O。由于您没有指定用于 I/O 的函数,我无法确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    相关资源
    最近更新 更多