O que "tcmalloc atualmente não retorna nenhuma memória para o sistema." significar?
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.
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.