Melhorando a performance de uma view em 35%

August 15, 2015

Abrir uma conexão com o PostgreSQL não é propriamente a definição da palavra lento, mas é uma coisa que pode ser facilmente otimizada.

Se você usa o banco de dados em um servidor diferente, ou mesmo se usa localmente, abrir uma nova conexão pode demorar alguns milissegundos.

Eu uso o Opbeat para monitorar a performance do meu projeto, observando o breakdown do tempo gasto em cada camada da aplicação, dá pra observar que mesmo 27.5ms representam, na minha Home, 23% do tempo de chamada da requisição.

Levando isso em consideração, vale a pena dar uma olhada nas conexões persistentes de banco de dados no Django, built-in desde a versão 1.6.

DATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.postgresql_psycopg2’, ‘NAME’: ‘blabla’, ‘CONN_MAX_AGE’: 600, } }

O parâmetro CONN_MAX_AGE é configurado em segundos, sendo assim ele vai manter a conexão por 10 minutos. Ajuste e teste de acordo com o seu projeto.

Tá, mas qual o resultado disso? Vamos ver agora.

Aqui o tempo médio de chamada da Home antes de eu alterar a configuração:

E aqui o tempo médio depois de configurar a persistência da conexão:

Então é isso, 35% de ganho com uma linha no settings.