[经历] write+commit与ofstream的比较
前些日子, 测试提单, 直接写文件的情形下, 日志生成太慢, 影响体验
老代码(历史遗留代码):
Windows:
_write() + _commit() // 经过测试, 每秒日志不足50条
和
Linux:
write() + fsync()
尝试过各种可能问题的修改, 都不见效, 最后考虑换函数, 改用C++的ofstream:
ofstream::write() + ofstream::flush() // 经过测试, 每秒日志可达到20000多条
......
[解决办法]
[解决办法]
这不科学啊。
[解决办法]
有缓冲的IO函数会好一些。
[解决办法]
摒弃fstream
使用FILE *
[解决办法]
难道fstream..........有更优秀的实现?
[解决办法]
因为ofstream的flush清的是自己的缓存,东西可能留在os的缓存里没写进磁盘。当然会更快……
[解决办法]
缓存对性能有质的飞跃, 前提是你的程序最好别挂掉。
[解决办法]