我在函数内部的循环中有一个函数。内部函数在内存中获取并存储大量数据向量(作为全局变量......我使用的是“R”,类似于“S-Plus”)。循环遍历要获取的一长串数据。外部函数启动该过程并传入要获取的数据集列表。
for (dataset in list_of_datasets) {
for (datachunk in dataset) {
<process datachunk>
<store result? as vector? where?>
}
}
我对内部函数进行了编程,以便在移动到下一个数据集之前存储每个数据集,因此外部函数的所有工作都会作为对全局变量的副作用发生......这是一个很大的禁忌。这比收集和返回一个巨大的、占用大量内存的向量是好还是坏?有没有更好的第三种方法?
如果我将数据向量存储在数据库中而不是内存中,答案会改变吗?理想情况下,我希望能够在不丢失终止之前处理的所有信息的情况下终止该功能(或使其因网络超时而失败)。