数据存储是用一个大文件好还是多个小文件好?

Is it better to have one large file or many smaller files for data storage?

我有一个 C++ 游戏,它向服务器发送 Python-SocketIO 请求,服务器将请求的 JSON 数据加载到内存中以供参考,然后将其部分发送到客户端必要的。这里之前的回答大多都详细说明了服务端要反复查找数据库,而这种情况下,第一次后所有的数据都存储在内存中,客户端断开连接后释放。

我不想在新客户端加入时大量涌入内存使用量,但是我所看到的大部分内容都指向使用小文件(50-100kB 绝对最大值),而是使用大文件,这会导致我试图避免的大量内存使用。

我的问题是:使用一个大文件是否仍然有益,还是我应该使用较小的文件;从组织和绩效的角度来看?

如果您只访问它的一小部分,您应该将它分成多个文件以减少内存。例如,如果您只访问播放器,那么您的文件夹结构将如下所示:

players
  - 0.json
  - 1.json
other
  - 0.json

然后你可以编写一个函数来获取具有特定 ID(0、1 等)的玩家。

如果您打算同时访问所有玩家、其他对象等,那么请使用相同的文件夹结构,并将您需要的部分连接到内存中的一个对象中。

Is it better to have one large file or many smaller files for data storage?

两者都可能更好。每个都有自己的优点和缺点。哪个更好取决于用例的细节。最好的方法很可能是介于两者之间,例如一些中等大小的文件。

关于性能,验证什么是最好的最准确的方法是尝试每一个并测量。