use*_*921 5 c++ logging visual-studio c++11
在 Visual Studio C++11 中处理一个大型项目。
为了避免延迟,我尝试将函数的日志(可能很大,并且可能超过 300000+ 日志行,因为该函数做了一些大量的计算)写入 std::stringstream 中,最后将其刷新到文件中。
我想做的是坏事吗?有什么我可以做得更好的吗?这是因为我不想每次想写入日志时都将其刷新到文件中。
蒂亚!
最终,这里的限制只是程序可用存储中的空间量,这实际上是系统上的备用内存量(RAM、交换区等)。
随着“内容”的增长,字符串流的性能会有所下降,因为调整缓冲区大小需要复制其内容,而当内容较多时,速度会变慢。您还可能面临系统内存池碎片化的风险。从您的描述中很难知道这是否是一个因素(行数在这里并不重要;字节数很重要)。
根据日志填充的速度,我会考虑更频繁地刷新到文件,以便:
因为刻意避开所有成熟的技术没有多大意义。
但从根本上讲,批量冲洗是有意义的,因此您的整体设计听起来不错。
| 归档时间: |
|
| 查看次数: |
888 次 |
| 最近记录: |