在目标包中使用 callr_function = NULL 的含义

implications of using callr_function = NULL in targets package

我想知道当 callr_function = NULL 时会发生什么? 只是 environment/side 影响中的问题吗?

主要是想知道,因为我正在传递相当大的时空数组(0.5 到 5 gigs)并且通过 saveRDS 进行调用序列化非常慢。

我正在考虑的两件事是分叉 callr 并放入不同的保存函数或仅使用 callr_function = NULL。

通常,targets 运行在全新的可重现外部 R 会话中使用管道。 callr_function = NULL 只是对 运行 当前 R 会话中的管道说。我只建议将其用于调试,因为在严重的用例中,您可能会根据全局环境中更改的数据意外地使某些目标无效。 callr_function = NULL 可能无助于解决大内存问题。为此,我建议为您的数据选择一种更有效的存储格式,例如tar_target(..., format = "羽毛").您也可以尝试 tar_option_set(memory = "transient", garbage_collection = TRUE) 以获得更好的内存效率。