Ticket #504 (closed melhoria: fixed)

Opened 15 years ago

Last modified 14 years ago

Verificar melhorias de velocidade no Expresso usando Yslow

Reported by: amuller Owned by: amuller
Priority: pequena Milestone: Expresso 2.1
Component: API Version: trunk
Severity: Keywords: yslow velocidade desempenho
Cc: WorkGroup:

Description

Elencar e discutir os critérios que o YSlow aponta como vilão do desempenho em módulos do Expresso.

Attachments

carregamentoEM.png Download (16.1 KB) - added by amuller 14 years ago.

Change History

comment:1 Changed 14 years ago by amuller

  • Status changed from new to assigned
  • Milestone set to Expresso 2.1

comment:2 Changed 14 years ago by amuller

Resultados:

Pagina Nota
Tela de login C
Calendar D
ExpressoMail E
ContactCenter E

O que não vai ser mechido:

Pagina Problema Solução
Tela de Login Grade F on Add Expires headers Deve ser configurado no serviço
Tela de Login Grade F on Configure entity tags (ETags) Deve ser configurado no serviço
Tela de Login Grade F on Compress components with gzip Deve ser configurado no serviço
ExpressoMail Grade F on Compress components with gzip Deve ser configurado no serviço
ExpressoMail Grade F on Minify JavaScript and CSS There are 6 components that can be minified orbited/static/Orbited.js, orbited/static/protocols/telnet/telnet.js, orbited/static/json2.js, 8000/static/JSON.js
ExpressoMail Grade F on Use cookie-free domains Colocar imagens fora do domínio principal, deve ser configurado no serviço
ExpressoMail Grade F on Add Expires headers Deve ser configurado no serviço
ContactCenter Grade F on Add Expires headers Deve ser configurado no serviço
ContactCenter Grade F on Compress components with gzip Deve ser configurado no serviço

O que pode ser mechido:

Pagina Problema Solução
ExpressoMail Grade F on Put CSS at top
ExpressoMail Grade F on Make fewer HTTP requests This page has 33 external Javascript scripts, 7 external stylesheets, 9 external background images.
ContactCenter Grade F on Put CSS at top
ContactCenter Grade F on Put javascript at bottom

Fora isso estou anexando um gráfico do tipo pizza que mostra que 80% do trafego de carregamento do ExpressoMail? é javascript, que pode ser melhorado com compactador.

Changed 14 years ago by amuller

comment:3 follow-up: ↓ 6 Changed 14 years ago by rodsouza

Mesmo tendo sido "modulado", o que foi ressaltado ocorre em todo o ExpressoLivre?.

Por exemplo o uso da compressão não existe em nenhum lugar.

O Apache utiliza o módulo "Deflate" para isso. No meu ambiente de desenvolvimento está configurado da seguinte forma:

LoadModule deflate_module        modules/mod_deflate.so

DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio

LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate 

comment:4 Changed 14 years ago by amuller

r1494 faz o que é possível com ordem de css e js sem estragar o ContactCenter

comment:5 Changed 14 years ago by amuller

Eu não estou testando no meu local. To testando no expresso.celepar.parana

comment:6 in reply to: ↑ 3 Changed 14 years ago by rodsouza

Replying to rodsouza:

LoadModule? deflate_module modules/mod_deflate.so

DeflateFilterNote? Input instream
DeflateFilterNote? Output outstream
DeflateFilterNote? Ratio ratio

LogFormat? '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog? logs/deflate_log deflate

Faltou as linhas...

SetOutputFilter DEFLATE

# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

comment:7 Changed 14 years ago by gustavoliden

Alguém testou o deflate com o IE6??

aqui no Serpro estavamos tendo alguns problemas e por isso tiramos....

estamos testando uma nova regra, agora sem gzip para o IE6... segue abaixo...

AddOutputFilterByType? DEFLATE text/html text/plain text/xml text/css AddOutputFilterByType? DEFLATE application/xml application/xhtml+xml application/rss+xml AddOutputFilterByType? DEFLATE application/javascript application/x-javascript

DeflateCompressionLevel? 6

BrowserMatch? Mozilla/4 gzip-only-text/html BrowserMatch? Mozilla/4\.0[678] !no-gzip BrowserMatch? \bMSIE no-gzip gzip-only-text/html # IE5.x and IE6 get no gzip, but allow 7+ BrowserMatch? \bMSIE\s7\.0 !no-gzip # IE 6.0 after SP2 has no gzip bugs! BrowserMatch? \bMSIE.*SV no-gzip # Sometimes Opera pretends to be IE with "Mozila/4.0" BrowserMatch? \bOpera !no-gzip Header append Vary User-Agent env=!dont-vary

comment:8 Changed 14 years ago by wmerlotto

Também utilizo o mod_deflate aqui e funciona muito bem. Segue minha configuração:

<IfModule mod_deflate.c>
        SetOutputFilter DEFLATE

        AddOutputFilterByType DEFLATE application/x-httpd-php
        AddOutputFilterByType DEFLATE application/x-httpd-fastphp
        AddOutputFilterByType DEFLATE application/x-httpd-eruby
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/plain
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE application/xhtml+xml
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE application/xml
        AddOutputFilterByType DEFLATE image/svg+xml
        AddOutputFilterByType DEFLATE application/rss+xml
        AddOutputFilterByType DEFLATE application/atom_xml
        AddOutputFilterByType DEFLATE application/x-javascript

        # Use low settings for compression to make sure impact on server is low
        DeflateMemLevel 2
        #Highest 9 - Lowest 1
        DeflateCompressionLevel 9

        #Optional
        #Skip browsers with known problems
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

        # properly handle requests coming from behind proxies
        <IfModule mod_headers.c>
                # Make sure proxies don't deliver the wrong content
                Header append Vary User-Agent env=!dont-vary
        </IfModule>

        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary
</IfModule>

Obs.: Pessoal, por favor, só coloquem código e/ou configurações conforme a formatação do wiki? do TRAC, que também vale para os tickets.

comment:9 Changed 14 years ago by amuller

De fato, usando o deflate os js passam de 700kb pra 150kb.Nem precisaria de compactador, no máximo seria para esconder o código do usuário.

Outra coisa que daria pra fazer é trabalhar no tamanho das imagens, pelo que notei usar jpg com perdas é muitas vezes menor que png. Benefício que pagaria o custo (dependendo do tamanho nem se vê diferença).

comment:10 Changed 14 years ago by gustavoliden

Alguém já tentou usar cache nessas imagens?

comment:11 Changed 14 years ago by amuller

  • Status changed from assigned to closed
  • Resolution set to fixed

Sim! por isso que eu diminui só as maiores mesmo. r1495 faz a correção

Como o que foi possível fazer da parte de código já foi feito, e como já foi demonstrado as melhorias da parte de serviço estou fechando o ticket.

Note: See TracTickets for help on using tickets.