Hoje tive que identificar um problema complicado no AtéPassar, uma rede social de estudantes de concursos públicos e OAB onde eu trabalho atualmente como líder técnico da equipe de desenvolvimento. A aplicação estava ficando lenta quando tinha muitos acessos simutâneos e não havia motivos aparentes para isso acontecer. Devido a esse problema tive que procurar uma forma de descobrir o que estava acontendo internamente no código da aplicação. Assim, lembrei que existe uma técnica de analise de programas que ecaixa totalmente com esta situação que é o profiling de software.
Pesquisei bastante na internet sobre como fazer isso em aplicações Django. Python tem um módulo especifico para isso, que é o hotshot. Assim acabei encontrando um projeto bem interessante que já existe uma integração com o django para rodar sobre o hotshot. Então ficou mais fácil de realizar essa tarefa de analisar o funcionamento do projeto. E para a visualização das chamadas eu utilizei o KCachegrind, um projeto OpenSource que permite visualizar os dados gerados por softwares de profiling.
O gráfico gerado pelo KCachegrind mostra as funções do sistema e os caminhos de chamadas com o custo de cada chamada. Assim podemos visualizar e identificar qual o ponto especifico que está deixando o sistema lento.
Depois de utilizar essas ferramentas consegui identificar o problema que estava deixando o AtéPassar lento e agora estamos trabalhando bastante para resolver este gargalo. Acredito que a solução para este problema também irá gera um post interessate para este blog.
Pesquisei bastante na internet sobre como fazer isso em aplicações Django. Python tem um módulo especifico para isso, que é o hotshot. Assim acabei encontrando um projeto bem interessante que já existe uma integração com o django para rodar sobre o hotshot. Então ficou mais fácil de realizar essa tarefa de analisar o funcionamento do projeto. E para a visualização das chamadas eu utilizei o KCachegrind, um projeto OpenSource que permite visualizar os dados gerados por softwares de profiling.
O gráfico gerado pelo KCachegrind mostra as funções do sistema e os caminhos de chamadas com o custo de cada chamada. Assim podemos visualizar e identificar qual o ponto especifico que está deixando o sistema lento.
Depois de utilizar essas ferramentas consegui identificar o problema que estava deixando o AtéPassar lento e agora estamos trabalhando bastante para resolver este gargalo. Acredito que a solução para este problema também irá gera um post interessate para este blog.
Nenhum comentário:
Postar um comentário