June 20, 2008 at 5:24 pm
Sob: notícias, spam
Tags: proxy, spam
Estão disponíveis em:
http://www.cert.br/stats/spam/
as estatísticas referentes a reclamações de spam enviadas ao CERT.br em maio de 2008.
O número total de emails processados neste período foi superior a 315 mil, com as reclamações concentrando-se nas categorias de Proxy Aberto e Envio de Spam.
Observou-se um decréscimo de 22.4% no número de notificações deste mês, comparado com o mês anterior (abril de 2008).
Atenciosamente,
–
CERT.br
<cert@cert.br>
http://www.cert.br/
Link: http://noticias.aspecto.net/index.php/estatisticas-do-certbr-spam-maio-de-2008.html
June 11, 2008 at 11:24 am
Sob: desenvolvimento, dica, php
Tags: dica, performance, php, programação
Uma boa programação faz toda a diferença no resultado de um site, principalmente quando ele possui muitos acessos, que é a intenção de 99% dos sites. Eu não poderia deixar de compartilhar estas dicas que encontrei no blog do Lucas.
- Se um método pode ser estático, declare-o estático. O fator de otimização é 4x+
- echo é mais rapido que print. Veja
- Prefira usar echo com múltiplo parâmetros ao invés de concatenar string
-
echo "parametro um", $var , "outro parametro"
- Defina o valor máximo do seus loops antes do
for e não no for
#onde:
-
for($i=0;$i<count($array);$i++)
-
#use:
-
$max_for = count($array);
-
for($i=0;$i<$max_for;$i++)
- Sempre dê unset em variáveis que não serão mais usadas, principalemente grandes arrays.
- Tente não usar métodos mágicos, como: __get, __set, __autoload
- require_once() tem custo elevado, prefira include[_once], como alertado pelo Pablo, o include_once é mais custoso que o include.
- Use caminhos completos em includes e requires, o PHP gastara menos tempo resolvendo os caminhos.
- Se você deseja descobrir quando o script começou a ser executado, $_SERVER[’REQUEST_TIME’] é melhor que time()
- Se você puder, use strncasecmp, strpbrk e stripos no lugar de funcões regex
- str_replace é mais rápida que preg_replace, mas strtr é ainda 4x mais rapida que str_replace.
- Se uma função, como troca de string , aceitar tanto arrays quanto caracteres unicos e a sua lista de argumentos não for muito longa, considere escrever algumas vezes o mesmo código passando um caracter por vez ao invés de uma linha passando arrays nos argumentos de pesquisa e troca.
- É melhor usar switch/case do que multiplos if’s e else.
- Usar supressão de erros com @ na frente da função é muito lento.
- Ative o mod_deflate do apache( modulo de compressão de resposta).
- Feche as conexões ao banco de dados quando você não for mais usa-lo.
- $row[’id’] é 7x mais rapido que $row[id]
- Mensagens de erros tem custo elevado, desligue-as em produção.
- Não use funcões dentro de loops, como:
-
for ($x=0; $x < count($array); $x)
A função count() é chamada em cada iteração.
- Incrementando uma variavel local é mais rapido.
- Incrementando uma variavel global é 2x mais lento que em uma variavel local.
- Incrementando uma propriedade ( $this->prop++) é 3x mais lento que em uma variavel local.
- Incrementando uma variavel local não definida é de 9x a 10x mais lento do que uma variavel local pré-inicializada.
- Declarando uma variável global sem usá-lo em uma função também atrasa as coisas (com aproximadamente a mesma quantidade incrementando como uma variavel local).O PHP provavelmente faz um checagem para ver se existe a nível global
- A invocação de métodos parece ser independente do número de métodos definidos em uma classe, em uma classe de teste onde se adicionou 10 metódos não teve mudança de performance.
- Métodos em classes derivadas rodam mais rápido do que aqueles definidos na classe base.
- Use ‘ ao invés de ” em strings quando não for preciso usar variaveis ou escapes, assim o PHP não necessita procurar e interpretar esses caracteres especiais.
- Prefira usar HTML puro se for possivel, scripts PHP são servidos de 2x a 10x mais lentos que equivalentes.
- Em cada requisição seus scripts PHP são recompilados, use uma solução de cache, isso pode te dar um ganho de 25 a 100% . Veja
- Quando lidando com string e você precisar verificar se a string possui certo tamanho, você entendidamente desejara usar a função strlen().
Essa função é bastante rapida, já que ela não faz nenhum calculo, apenas retorna o tamanho ja conhecido da string disponivel na estrutura zval(estrutura interna do C usada para guardar variaveis PHP). No entanto como strlen() é uma função ela ainda assim é lenta, porque o PHP precisa fazer varias operações como lowercase e buscas na hashtable, e em seguida executar a dita função.
Algumas vezes você podera aumentar a velocidade do seu código usando um truque com isset().
Exemplo: Digamos que voce tem :
if (strlen($foo) < 5) { echo “Foo is too short”; }
-
# versus
-
if (!isset($foo{5})) { echo “Foo is too short”; }
Usando isset() sera mais rapido que strlen(), porque diferente de strlen(), isset() é um construtor de linguagem e não uma função, isso quer dizer que a sua execução não necessita busca na hashtable nem uso de lowercase. Virtualmente você não sobrecarga no código atual para determinar o tamanho da string.
- Quando incrementando ou decrementando o valor de uma variavel, $i++ normalmente é mais lenta que ++$i. Isso é especifico para PHP, ou seja, não se aplica a outras linguagens, não sai por ai modificando seu código java ou C. Isso se da porque $i++ usa 4 opcodes enquanto ++$i precisa de somente 3.
- Nem tudo precisa ser OOP, gera muita sobrecarga, cada chamada de método e objeto consome um monte de memória.
- Não implemente cada estrutura de dados como uma classe, arrays são utéis também.
- Não divida muito os métodos, pense bem cada código que sera reusado.
- Você sempre podera dividir o código no futuro, caso necessario.
- Faça uso das incontaveis funções pré-definidas.
- Se você tem muito tempo consumido por funções em seu código, considere escreva-las como extensões C.
- Faça Profile do seu código. Um profiler mostra quanto tempo cada parte do seu código consome. A extensão Xdebug ja contém um profiler.
- Excelente artigo sobre otimização PHP de John Lim (inglês)
Link: http://noticias.aspecto.net/index.php/39-dicas-de-performance-php.html