
我在’Core 2’硬件上使用32位Windows XP并在C#中编程.
我想将这些数据保存到1000个文件中 – 每个主题一个.我知道很多人会想告诉我将数据保存到数据库中,但我不想走这条路.
我考虑过几种方法:
1)打开1000个文件,并在数据到达时写入每个文件.我对此有两个担忧.我不知道是否可以同时打开1000个文件,我不知道这会对磁盘碎片产生什么影响.
2)写入一个文件 – 以某种方式 – 稍后处理它以生成1000个文件.
3)将其全部保存在RAM中直到当天结束,然后一次写入一个文件.我认为如果我有足够的RAM,这将很有效,尽管我可能需要移动到64位以超过2 GB的限制.
你会如何解决这个问题?
解决方法 我同意Oliver,但我建议修改:拥有1000个队列,每个主题/文件一个.一个线程接收消息,对它们加时间戳,然后将它们粘贴到适当的队列中.另一个只是在队列中旋转,看看他们是否有数据.如果是,则读取消息,然后打开相应的文件并将消息写入其中.关闭文件后,它会移动到下一个队列.这样做的一个优点是,如果无法跟上流量,您可以添加额外的文件写入线程.我可能首先尝试设置写入阈值,但是(延迟处理队列直到它有N条消息)来批量写入.这样你就不会陷入打开和关闭文件只能写一两条消息. 总结以上是内存溢出为你收集整理的c# – 将实时数据存储到1000个文件中全部内容,希望文章能够帮你解决c# – 将实时数据存储到1000个文件中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)