O que "tcmalloc atualmente não retorna nenhuma memória para o sistema." significar?

StackOverflow https://stackoverflow.com/questions/5975644

  •  12-11-2019
  •  | 
  •  

Pergunta

no http://goog-perftools.sourceforge.net/doc/tcmalloc.html . É declarado: "O CMalloc atualmente não retorna qualquer memória para o sistema". Eu presumo que isso signifique que se eu alocar 42 MB e sistema gratuito de TI não o obtê-lo de volta, mas da próxima vez eu alocar 47 MB, ele roubará apenas 5 MB mais?Minha pergunta o que acontece com o DLL carregado ou módulos.Eles obtêm seu próprio pedaço de memória que não é liberado até que sai do programa.Eu pergunto porque se eu quiser escrever tempo de execução atualizado SW, devo carregar novas dlls sem sair do programa.Então, minha pergunta é: se eu usar -ltcmalloc e estou constantemente carregando e descarregando DLLs que alocam e a memória livre, isso fará com que o uso de MEM explodir?Eu presumo que seja uma pergunta estúpida, mas não sei se cada DLL usa suas próprias coisas de alocação de memória ou se a alocação MEM estiver ativada por nível de processo.

Foi útil?

Solução

A memória pertence a um processo, não para DLLs.Então a memória normalmente será mantida até que o processo termine.Esta é uma característica comum da maioria das implementações de Malloc, não apenas a que você está perguntando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top