Perfilando código com o TPTP (Possível bug no TPTP)

Olá a todos,

Eu estou utilizando o TPTP para realizar perfilação de um código, e estou gostando muito da ferramenta, apesar de ter encontrado em alguns fóruns opniões contrárias (não aqui no GUJ).

O meu problema é com a utilização de filtros, existem dois tipos de filtros:

  • Um anterior à perfilação, que é usado para performance, onde o desenvolvedor define o que quer perfilar e com isso fica realmente mais rápido o processo de perfilação. Os métodos excluídos do filtro não podem mais ser analisados após a perfilação (É necessário outra perfilação com alteração do filtro para inclusão dos métodos).

  • Um posterior à perfilação, usado somente para visualização dos resultados, em qualquer momento o desenvolvedor pode voltar a ver todos os métodos perfilados somente mudando o filtro.

Eu estou tendo resultados indesejados com a utilização do filtro anterior à perfilação, o mais interessante dos dois aliás.

A ordem em que insiro padrões no filtro está influenciando em quais métodos são perfilados, até ai tudo bem, o problema é que fazendo testes com a ferramente cheguei ao ponto de ter dois padrões exclusivos, vou colocar o exemplo que fiz pra tentar me explicar melhor.

Class Method name Rule


ClasseA metodoX INCLUDE
ClasseA metodoY INCLUDE

Nesse caso, eu consegui que o TPTP perfilasse o método ‘metodoX’, porém o método ‘metodoY’ foi excluído apesar da regra INCLUDE. Foi aí que mudei a ordem desses padrões, ficando assim:

Class Method name Rule


ClasseA metodoY INCLUDE
ClasseA metodoX INCLUDE

Com isso funcionou, consegui que o método ‘metodoY’ fosse perfilado, porém o método ‘metodoX’ não foi mais perfilado. A relação entre esses métodos nesse meu exemplo é que metodoX invoca metodoY. Esses nomes são somente de exemplo, os nomes reais dos métodos são totalmente diferentes, portando é inviável que eu utilize um wildcard e transforme em um único padrão.

Com o contexto da situação explicado, lanço minhas perguntas:

Alguém já passou por isso? Existe alguma solução para essa situação? Eu estou usando o TPTP corretamente?