Função flush()

349 views
Skip to first unread message

Natascha

unread,
Feb 7, 2011, 7:16:47 AM2/7/11
to LISTA PHP
Olá pessoal!

Na página do Yahoo de dicas para otimização de sites (http://
developer.yahoo.com/performance/rules.html) a função flush() do PHP é
recomendada porque vai enviando parcialmente a resposta ao navegador.

Mas, no manual do PHP, diz:

1. flush() não tem efeito no funcionamento de buffer do seu servidor
ou do browser do cliente.
2. Módulos de servidor para o Apache como o mod_gzip podem fazer
buffer por si o que fará com que flush() não resulte em os dados serem
enviados imediatamente para o cliente.

Ou seja, alguem já notou melhoria de performance usando o flush()?

Rafael Galdencio

unread,
Feb 7, 2011, 7:44:20 AM2/7/11
to list...@googlegroups.com
flush sozinho não... com o ob_flush sim.

O problema do flush e do ob_flush é que nem sempre funciona... Pra funcionar sempre, tem que ter um ob_start, que por sua vez pode corromper tratamento de erros, o que obriga o uso de um ob_end_flush e um ob_start logo em seguida.

Esse função, que tem nos comentários da página do flush, no manual do php, faz isso:

function flush_all(){
    echo(
str_repeat(' ',256));
    
// check that buffer is actually set before flushing
    
if (ob_get_length()){            
        @
ob_flush();
        @
flush();
        @
ob_end_flush();
    }    
    @
ob_start();
}

Nesse caso, se tiver ob, a função manda para o browser, senão, ele tenta iniciar um ob.

--
Rafael Galdencio de Faria Silva
Desenvolvedor Web


--
============================================================
LEIAM SEMPRE AS REGRAS DA LISTA:
http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
--
LISTA PHP > http://groups.google.com.br/group/listaphp
--
REVISTA PHP > http://www.revistaphp.com.br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================

Natascha

unread,
Feb 8, 2011, 5:12:48 AM2/8/11
to LISTA PHP
Vi em um site (aqui: http://blog.caelum.com.br/top-7-praticas-para-um-site-otimizado/)
que na verdade com GZip ativado no servidor Web não permite resultados
pelo flush, e utilizar o GZip é muito mais prático do que ficar
adicionando código de programação (já que basta somente ativar GZip no
httpd.conf do Apache) e o resultado é bem notável (reduz bem o tamanho
das páginas, agilizando no carregamento).

Me parece que não convém usar flush....

Obrigada pela resposta Rafael!

Rafael Galdencio

unread,
Feb 8, 2011, 5:41:21 AM2/8/11
to list...@googlegroups.com
Sem problemas...

É bom dar uma olhada no público alvo do site antes de optar somente pelo gzip. Muitos proxys não são configurados para aceitarem gzip, principalmente empresas sofrem com isso. Se for um site popular é sempre bom despender de um tempo para otimização de carregamento, ou seja, gzip + flush. Rsrs!

Aliás, gzip + flush funciona a partir do Apache 2.2.8.

Abraços!


--
Rafael Galdencio de Faria Silva
Desenvolvedor Web


2011/2/8 Natascha <natas...@gmail.com>

--

Felipe Duardo

unread,
Feb 8, 2011, 5:56:14 AM2/8/11
to list...@googlegroups.com
acho bastante valido modulos instalados no servidor, para um melhor desempenho (ACP por exemplo),
so que tem que ser feito por alguem que tenha  a manha senão zica tudo... eu nao tenho muita experiencia
mas o pessoal aqui na empresa esta batendo a cabeça para montar um estrutura paruda de server com
esse modulos e etc instalados no server...
--
Felipe Duardo

Natascha

unread,
Feb 8, 2011, 7:18:20 AM2/8/11
to LISTA PHP
Rafael, são técnicas recomendas pelo Yahoo! e Google, aquele site só
traduziu algumas.

Veja:
http://developer.yahoo.com/performance/rules.html
http://code.google.com/intl/pt-BR/speed/page-speed/docs/payload.html

Aproveitando, para aqueles que aplicam as técnicas acima, alguém sabe
como minificar php para versão 4?
Sim, eu ainda uso a versão 4, e por isso não dá para utilizar o Minify
http://code.google.com/p/minify/

Além disso, GZip também p/ páginas php, colocando text/php não
funciona..

Obrigada!

Felipe Duardo

unread,
Feb 8, 2011, 7:23:22 AM2/8/11
to list...@googlegroups.com
ajuda,  http://dean.edwards.name/packer/

2011/2/8 Natascha <natas...@gmail.com>

--
============================================================
LEIAM SEMPRE AS REGRAS DA LISTA:
http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
--
LISTA PHP > http://groups.google.com.br/group/listaphp
--
REVISTA PHP > http://www.revistaphp.com.br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================



--
Felipe Duardo

Rafael Galdencio

unread,
Feb 8, 2011, 6:28:18 AM2/8/11
to list...@googlegroups.com
APC + memcache + google mod_pagespeed = Ultra combo

--
Rafael Galdencio de Faria Silva
Desenvolvedor Web


Natascha

unread,
Feb 8, 2011, 12:01:25 PM2/8/11
to LISTA PHP
Achei um compressor HTML bacaninha: http://www.alentum.com/ahc/

Obs.: Descobri que para habilitar compressão PHP há biblioteca zlib
para ativação no php.ini (não no httpd.conf do Apache).

Henrique B. Raia

unread,
Feb 10, 2011, 4:21:25 PM2/10/11
to list...@googlegroups.com
Eu faço alguns testes usando o http://gtmetrix.com/

Muito bom tb!

Att.
Henrique B. Raia (shIi)




--

Sidney

unread,
Feb 10, 2011, 5:58:25 PM2/10/11
to list...@googlegroups.com
Muito bom esse GTMetrix, Henrique. Não conhecia.
Sidney Lins


2011/2/10 Henrique B. Raia <shir...@gmail.com>

Natascha

unread,
Feb 11, 2011, 6:43:15 PM2/11/11
to LISTA PHP
Puxa que legal esse site Henrique! Pra quem não tem YSlow e PageSpeed
instalados é uma boa!

Natascha
@nshgeek
Reply all
Reply to author
Forward
0 new messages