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