13. 13
Uso de
Middlewares
Cache de View
Mas Django não
escala...
@cache_control(max_age=300)
def top_atletas(request, periodo, quantidade, formato):
dados =
MateriaSemanticaController().top_atletas(periodo, quantidade)
return render_to_json(dados, formato, 'top_atletas')
19. Memcached
19
Diminui a quantidade de memória utilizada:
podemos ter várias listas de ids de objetos mas
apenas uma entrada para cada objeto
»
Aumenta a performance do sistema: não é
necessário expurgar todo o cache de uma lista
na alteração de um objeto. Basta expurgar o
objeto.
»
21. SSI - Server Side
Include
21
<div class="glb-grid-8 widget-plantao-semantico">
<!--#include virtual="/_ssi/plantao/pe/plantao/1"
-->
</div>HTTP/1.1 200 OK
Server: nginx
Date: Fri, 11 Apr 2014 13:19:20 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Last-Modified: Fri, 11 Apr 2014 13:19:06
GMT
Expires: Fri, 11 Apr 2014 13:24:06 GMT
Cache-Control: max-age=300
globoesporte.globo.com/pe/noticia/plantao.
html
22. Ajax vs SSI
Melhor para a indexação daquele conteúdo
(SEO)
»
22
Diferentes tempos de cache para componentes
em uma mesma página
»
Melhora a performance client-side»
Diminui o número de requisições ao servidor»
23.
24. Baixo consumo de recursos da máquina»
24
simples configuração»
alta performance»
free e open source»
módulos essenciais: purge, ssi e proxy cache»
25. Minify de CSS e JS (módulo compressor do
Django)
»
25
CSS Sprite»
Tempo de expiração adequado para a sua view»
gzip»
estáticos servidos pelo Varnish em uma farm
separada
»
Performance
Client-Side
caching do browser»
26. 26
Performance Client-
SideConfigure os headers da requisição
corretamente!
HTTP/1.1 200 OK
Accept-Encoding: gzip,deflate,sdch
Content-Type: application/json
Vary: Accept-Encoding
Cache-Control: max-age=30
Expires: Tue, 10 Oct 2014 11:45:24 GMT
Date: Tue, 10 Oct 2014 11:44:59 GMT
X-Varnish: 1952793053 1952791896