文件V/S在内存中存储网络数据

File V/S in-memory storage of network data

本文关键字:存储 网络 数据 内存 文件      更新时间:2023-10-16

我们有一个场景,一个函数在代码中被调用了很多次。该函数通过网络下载相同的URL。

我的实现方式是:

下载网络数据->保存到文件->读取文件并根据需要进行处理

在随后的函数调用中,该函数首先检查数据是否已经下载,文件是否已经存在,如果为真,则读取文件。

这样做是为了避免一次又一次地下载相同的网络数据。

然而,在代码审查中,其他工程师坚持认为使用本地静态变量来存储网络数据比使用文件系统更好——有人能解释一下为什么吗?为什么局部静态变量优于文件系统方法?

请注意网络数据确实是小容量存储是没有限制的。

在文件系统中存储文件必然比在内存中存储文件要花费更多的时间(参见Wikipedia关于内存层次结构的条目)。这里的基本问题是持久性:是否有必要在几个程序启动期间持久化(特别是少量数据)?如果不是,您可能应该将其保存在内存中(甚至可能处于已经处理的状态,以便快速访问)。

另一点:读写文件可能出错(只要看看这些类的MSDN条目中所有可能的异常)。如果向文件系统写入数据没有任何好处,那么就不要这样做(因为这只会给代码增加另一个潜在的危险),