gpt4 book ai didi

c++ - File V/S 内存存储网络数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:18 24 4
gpt4 key购买 nike

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

我的实现方式是:

下载网络数据->保存到文件->读取文件并按需处理

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

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

但是,在代码审查中,其他工程师坚持认为使用局部静态变量来存储此网络数据是一个好主意,而不是使用文件系统 - 有人可以解释为什么吗?为什么局部静态变量优于文件系统方法?

请注意,网络数据非常小 - 存储大小不受限制。

最佳答案

好吧,将文件存储在文件系统中必然比将其存储在内存中花费更多的时间 (See Wikipedia entry on Memory Hierarchy)。这里的基本问题是持久性:是否有必要在多个程序启动时持久化(尤其是少量数据)?如果不是,您应该将其保存在内存中(甚至可能处于已处理状态以便快速访问)。

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

关于c++ - File V/S 内存存储网络数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22662766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com