Estou trabalhando em operações com uso intensivo de memória em R. Vi alguns conselhos neste site sobre como aumentar o limite de memória, R_MAX_VSIZE
mas não encontrei uma explicação clara sobre exatamente quais tipos de valores podem ser inseridos e como eles são lidos.
Quais formatos são aceitos/válidos para a R_MAX_VSIZE
variável de ambiente?
Aqui está o que descobri até agora:
Documentação base R - Memória: Memória disponível para armazenamento de dados
O tamanho máximo do heap vetorial pode ser definido com a variável de ambiente
R_MAX_VSIZE
Não consigo encontrar informações adicionais sobre quais valores são permitidos nesta página de ajuda.
Resposta de Graeme Frost ao R no MacOS Erro: memória vetorial esgotada (limite atingido?)
Esta resposta sugere definir o valor como "100Gb". Quando encontrei o problema em minha máquina, isso realmente resolveu meu problema, mas há outras respostas que indicam que outros valores são válidos.
Resposta de Connor Dibble ao erro: memória vetorial esgotada (limite atingido?) R 3.5.0 macOS
Esta resposta define o valor
export R_MAX_VSIZE=32000000000
which não inclui as unidades, então presumo que esteja sendo interpretado como bytes.
Pelo menos desde o R-devel no momento em que este artigo foi escrito (4.5.0), o capítulo Memória
R_MAX_VSIZE
que cobre foi atualizado para incluir qual deveria ser seu valor:No entanto, no código-fonte do R (pelo menos um espelho dele), podemos ver que o valor recuperado da variável de ambiente é passado para
R_Decode2Long
:Na definição desta função também são interpretados valores com unidades (ou seja, 100G, 20M, etc.):