我的情况是,在对我们的系统进行分析和分析后,得出的结论是,系统的日志记录组件是占用总运行时间约 17% 的众多瓶颈之一 - 记录了很多事情.
其中,记录器消耗的大约 5% 的时间与生成以下格式的 ascii 日期/时间戳有关:YYYYMMDD HHMMSS.fff - 我们大约每秒记录约 700k 行。(大约 700K x (localtime and gettimeofday) 每秒调用)
我想知道 SOers 有什么技术可以有效地生成时间戳。
跨平台解决方案将受到欢迎。
注 1:我们研究了 Boost.datetime - 它很棒,但是对于我们的需求来说有点太慢了,std::chrono 是一个完美的解决方案,但是不幸的是我们必须支持 pre c++11 编译器。
注意 2:我们已经实现了一个简单的优化,它每 24 小时只计算一个日期部分 (yyyymmdd),因此每行只有 1 个 gettimeofday 调用 - 但没有多大帮助。