我一直在为C++中的日志子系统测试三个选项。一个是Log4cplus,一个是Pantheios,最后一个是我们自己编写的简单日志记录库。

Log4cplus比其他两个慢得多。以下是记录1,000,000个日志条目的结果:

  • log4cplus: 200 秒编辑:设置缓冲区大小将其减小为 120
  • mylogger:55秒
  • Pantheios: 35

  • 我想知道是否缺少任何性能调整。

    我应该补充一点,我一直在使用root记录器,我正在记录文件并记录日志:LOG4CPLUS_INFO(rootLogger, "Replace me with the text!");
    谢谢,
    礼萨

    最佳答案

    log4cplus::NullAppender中使用performance_test在半加载的FreeBSD服务器上为我提供了Logging 1000000 took: 4sec 343709usec。 IOW,纯日志记录开销很小。您的记录时间似乎取决于目标记录器。如果您使用的是log4cplus::FileAppender,则时间安排会大不相同。

    编辑:

    您需要稍微调整FileAppender。确保将ImmediateFlush属性设置为false。您还可以将BufferSize设置为更大的值,例如1000000字节。

    关于c++ - Log4cplus真的那么慢吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7338439/

    10-10 23:36