Pergunta

Eu fiquei preso em um problema com Gflags Ao tentar encontrar alguns vazamentos de memória em um aplicativo Windows.

Quando eu ligo o ust Flag (para coletar alocações de memória empilham traços) A memória do meu aplicativo aumenta muito mais rapidamente do que quando a bandeira está desativada (atinge 800 MB em 10 min de abril. O que está longe do 50-100 MB/dia que recebo quando a bandeira está desligada).

Eu li que há um máximo para traços de pilha de 32 MB, então suponho que isso não deve ser um problema.

O computador é um 4x Intel (R) Xeon (R) CPU E5410 @ 2.33GHz.

Se alguém pudesse me dar uma dica, eu realmente apreciaria.

Obrigada!

Foi útil?

Solução

O banco de dados do Stack Trace não é o único impacto do sinalizador do UST. Ele também adiciona pelo menos 32 bytes a cada alocação, a fim de armazenar seu ID de rastreamento de pilha. Isso pode explicar o aumento da sua memória se muitas pequenas alocações estiverem envolvidas. Se você iniciar o processo com um depurador anexado ou compilou o processo com o destino de depuração, os Windows Heaps serão definidos no modo de depuração e a sobrecarga por alocação será ainda maior.

Outras dicas

Você pode definir o tamanho máximo do banco de dados de rastreamento usando /traceDB sizeinmbe, consulte o Documentação do MSDN GFLAGS para capítulo e verso. Por padrão, não há tamanho máximo que provavelmente explique o comportamento que você viu.

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