cache_results

CACHE_RESULTS——结果到磁盘缓存功能透明跟踪参数

598下载

更新2012年7月12日

查看许可协议

cache_resutls将评估指定函数与所提供的参数,然后将结果保存到磁盘文件中命名根据第一个参数。在随后的调用,它会检查对于这样一个文件,而且,如果参数匹配,返回结果从文件读取,而不是重新评估函数。的处境相同的功能正在评估相同的数据在多个地方(或mulitple倍),而评价至少适度计算昂贵,cache_results可以用作透明替换,避免冗余计算。

第一个参数是一个字符串时(例如,一个文件名称),使用这个名称(小修改)缓存的结果文件的名称(在一个特定的缓存目录)。当第一个参数是其他一些Matlab类型,它转换为十六进制散列(使用1月西蒙DataHash)然后用作缓存文件的名字。

尽管(有时)只有第一个函数参数是用于构建缓存文件的名称,所有的函数的参数记录在文件,连同相应的输出。缓存文件时发现,cache_results然后执行精确比较的所有参数(如缓存文件中记录的)为当前提供的参数调用,并且只使用缓存的结果如果参数匹配。如果没有发现匹配,所提供的函数执行。这个新的结果被添加到缓存文件(与不同的一组参数),以便在未来将从缓存中返回结果。因此,虽然单个缓存文件区分只有第一个参数,系统可以处理任意数量的不同的参数集与第一个参数有关。然而,搜索不同的参数集在一个缓存文件是线性的(目前),所以最有效的方式使用函数。

在很大程度上是透明的,用这种结果缓存有几个缺点。如果函数不给确定的结果由于其输入参数,然后缓存结果将“冻结”输出,改变其行为。如果第一个参数指的是磁盘上的文件,但输入文件本身就是改变,cache_results不会知道重新评估函数的新文件。如果函数本身改变了(即使评估相同的输入参数,其结果将是不同的),cache_results仍将返回缓存的值。有一些函数内的代码检查缓存文件的修改日期和函数可能迫使重新计算函数被修改时,但这种行为是目前禁用。

看到http://www.ee.columbia.edu/ ~ dpwe /资源/ matlab / cache_results /

引用作为

丹·艾利斯(2023)。cache_results(//www.tatmou.com/matlabcentral/fileexchange/37465-cache_results), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2012a
兼容任何释放
平台的兼容性
窗户 macOS Linux
类别
找到更多的在搜索路径帮助中心MATLAB的答案
确认

启发:DataHash

启发:cachedcall

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!
版本 发表 发布说明
1.0.0.0