求向文件中写入记录的编程思想(注意条件),该如何处理
求向文件中写入记录的编程思想(注意条件)
要向文件里写如记录,每秒至少写一万条,每条至少500字节,该怎么实现?要考虑的很全面,
比如说先写入内存或者缓存,那如果系统崩溃了怎么办?
------解决方案--------------------
那还是用现成的数据库吧。
------解决方案--------------------
这么庞大数量的记录,不用Database吗?
------解决方案--------------------
这种要求,显然应该用数据库来做。
------解决方案--------------------
产生一条日志写一条不行吗?
------解决方案--------------------
每秒1万,你如果是文件肯定崩了。
如果不想上数据库,推荐一个小型的不用部署的数据sqlite,非常好用,优化后,每秒在Windows下至少3万吧,linux下是Windows的4倍左右吧。(以上数据目测的,没有严格测试。)
不用部署,使用它就和使用普通api一样,而且跨平台。
------解决方案--------------------
以前我写过一个C++的日志类,
性能大概是2~3万条/秒,每条50个字节左右。
就是使用普通的操作文件的C++库函数。
我有些好奇是什么程序这么频繁的写日志,
因为我的测试程序基本不做别的事情,就是疯狂的把系统当前时间写到日志中。
在win下,只怕每秒写日志1万次的程序是没有闲暇去做别的事情了。
我觉得最好是优化日志内容,
简化日志内容下手(比如优化后每条日志100个字节就描述了过去600个字节才描述清楚的内容)。
要向文件里写如记录,每秒至少写一万条,每条至少500字节,该怎么实现?要考虑的很全面,
比如说先写入内存或者缓存,那如果系统崩溃了怎么办?
------解决方案--------------------
那还是用现成的数据库吧。
------解决方案--------------------
这么庞大数量的记录,不用Database吗?
------解决方案--------------------
这种要求,显然应该用数据库来做。
------解决方案--------------------
产生一条日志写一条不行吗?
------解决方案--------------------
每秒1万,你如果是文件肯定崩了。
如果不想上数据库,推荐一个小型的不用部署的数据sqlite,非常好用,优化后,每秒在Windows下至少3万吧,linux下是Windows的4倍左右吧。(以上数据目测的,没有严格测试。)
不用部署,使用它就和使用普通api一样,而且跨平台。
------解决方案--------------------
以前我写过一个C++的日志类,
性能大概是2~3万条/秒,每条50个字节左右。
就是使用普通的操作文件的C++库函数。
我有些好奇是什么程序这么频繁的写日志,
因为我的测试程序基本不做别的事情,就是疯狂的把系统当前时间写到日志中。
在win下,只怕每秒写日志1万次的程序是没有闲暇去做别的事情了。
我觉得最好是优化日志内容,
简化日志内容下手(比如优化后每条日志100个字节就描述了过去600个字节才描述清楚的内容)。