【发布时间】:2018-12-04 06:52:01
【问题描述】:
我在 MATLAB 中有一个应用程序,它在数据加载到自身时缓存数据。 通过使用“持久”命令,这些数据被“缓存”在函数中。例如。
persistent data
if isempty(data)
data = getData() % function that reads data in
end
当这些数据被缓存时,它会去哪里? 我注意到即使程序关闭并重新打开,缓存仍然存在。 是否正在写入磁盘?还是缓存存储在内存中?
一些细节:这是一个使用 Matlab Compiler Runtime 创建的程序,它是使用 R2014b 编写的。我不知道如何检查大数据可能有多大,所以在这方面的任何帮助都会是一个奖励。
编辑:缓存没有在我可以看到的程序实例之间持续存在。我最初在我的程序的未编译版本中观察到这一点,这是有道理的,因为缓存将与 matlab 实例一起存在。
【问题讨论】:
-
持久数据应该在内存中。我怀疑它能否在新的程序实例中持续存在。 getData 有什么作用?可能是从文件中读取?
-
关闭程序后它们仍然存在?!
-
getData 不是文字示例。它只是一个虚拟函数来表示我的代码实际执行的操作(从服务器获取大量数据),因为该函数不是很重要。数据是一个结构,如果有帮助的话。同样在第二次检查中,数据似乎不会在应用程序的不同实例中持续存在;我会在我的问题中澄清这一点。
-
在您编辑之后,似乎没有多少问题了。我想你已经回答了你自己的问题。
标签: matlab caching persistent-storage