software‎ > ‎módulos‎ > ‎engine‎ > ‎manuais‎ > ‎

profiler de memoria

Introdução

O profiler de memória permite analisar o consumo de memória de uma sessão, quais os objetos estão referenciados, quanto de memória eles está consumindo e quando foi criado. É uma importante ferramenta para identificar vazamentos de memória e otimizar seu uso.

Conceitos básicos

Objetos utilizados pela API de profiler.

  • Projeto

    É aonde todos os profilings são realizados. É criado um banco local IDO formado pela string NomeProjeto + _PROFILING.

  • Sessão

    É aonde é realizado um conjunto de medições sobre uma mesma sessão Javascript.

  • Profiling

    É a análise de um momento de uma sessão Javascript.

  • Geração

    Todo objeto Javascript é associado a uma geração. A cada vez que o GC é executado, é iniciado uma nova geração. A geração que um objeto pertence é informada no número que precede o ":", no id do objeto.

Utilização

Para um melhor uso do Profiler, habilite o Debugger do Javascript nas configurações do Manage.

Criando, ou abrindo um projeto.

Se nenhum projeto existir, ele é criado automaticamente.

profiler = new ngin.debug.MemoryProfiler("NomeProjeto");

Criando uma sessão

Onde partialSid é o nũmero de sessão truncado, na forma como aparece no Manage.

sid = profiler.newSession(partialSid);

Selecionando uma sessão

Para fazer outras medições sobre uma mesma sessão, você não deve usar newSession, e sim informar ao profiler para usar o id que ele retornou

profiler.setSession(sid)

Fazer uma medição.

Essa função demora alguns segundos, pois ele vai varrer toda a memória de uma sessão, e importar para o banco de dados.

o pid é o profilingId, um id associado ao último profiling.

pid = profiler.profile();

Visualizando profilings

Listar profilings:

profiler.listProfilings();

Selecionar um profiling:

profiler.setDefaultProfiling(pid);

Ver os objetos alocados:

profiler.listObjects()

Ver objetos de uma determinada classe:

profiler.listObjects(className)

Ver quais gerações estão vivas:

profiler.getLivingGenerations();

Para ver a cadeia de referências para um determinado objeto:

profiler.getRefChain(oid);