ログメッセージをディスクに書き込もうとしているので、FileAppender(バッファなしの同期)を選択します。しかし、速度はそれほど良くない。 次のコードを検討するlog4cxxのベストプラクティスは何ですか?
const std::string pattern("%d %m%n");
log4cxx::LayoutPtr layPtr = new PatternLayout(pattern);
FileAppender *fileappender = new FileAppender(layPtr, "log4cxx_bench.log", true);
const std::string line(30, 'k');
LOG4CXX_INFO(logger1, line);
はほぼ4秒を費やしています。ファイルサイズは60MBです。その速度は15MB/sです。私はXcodeでプロファイルしようとしました。プロフィール画像は以下の通りです:
バッファに同期するように変更してください。ほとんど同じ。私はそれを最適化する方法を知らない。