【发布时间】:2009-05-29 13:19:00
【问题描述】:
我有一个程序可以接收 1000 个主题的实时数据。它平均每秒接收 5000 条消息。每条消息由两个字符串、一个主题和一个消息值组成。我想保存这些字符串以及指示消息到达时间的时间戳。
我在“Core 2”硬件上使用 32 位 Windows XP,并使用 C# 进行编程。
我想将此数据保存到 1000 个文件中 - 每个主题一个。我知道很多人会告诉我将数据保存到数据库中,但我不想走这条路。
我考虑了几种方法:
1) 打开 1000 个文件,并在数据到达时写入每个文件。我对此有两个担忧。不知道能不能同时打开1000个文件,也不知道对磁盘碎片有什么影响。
2) 写入一个文件并在稍后处理它以生成 1000 个文件。
3) 将其全部保存在 RAM 中直到一天结束,然后一次写入一个文件。我认为如果我有足够的内存,这会很好,尽管我可能需要移动到 64 位才能超过 2 GB 的限制。
你会如何解决这个问题?
【问题讨论】: