Otimização de métodos PHP com cache de resultados

Resumo:
performance

Existem métodos que calculam uma informação de acordo com parâmetros informados (ou não) e retornam um resultado. Para alguns destes métodos, pode ser útil utilizar um cache de resultados para otimizar chamadas sucessivas ao método com parâmetros idênticos.

Para prover a otimização destes métodos, é utilizada uma variável estática que guarda os resultados já calculados.

Expires no Apache - Cache de arquivos no navegador

Resumo:
performance

O ambiente Web é caracterizado pelo modelo requisição/resposta através do protocolo HTTP. Sabendo que alguns conteúdos enviados do servidor para o cliente (navegador) são estáticos, ou mudam com pouca frequência, é possível utilizar um mecanismo de cache para evitar requisições repetidas ao mesmo arquivo. Isso é muito útil, por exemplo, para ser aplicado em imagens e folhas de estilos.

Máscaras Binárias no PHP

Resumo:
Introdução

Máscara binária (máscara de bits ou "bit mask") é um mecanismo usado para armazenar vários valores booleanos em um único campo inteiro e recuperá-los individualmente ou em grupo.

Normalmente, as linguagens de programação que possuem o tipo booleano (bool ou boolean) utilizam um byte (oito bits) para armazená-lo. Apesar de um booleano só precisar de um bit, o byte é usado porque ele é a unidade base das arquiteturas de computadores. Normalmente utiliza-se o valor 00000000 para representar "falso" e o 00000001 para representar "verdadeiro", ou seja, apenas o último bit tem significância.

Logo, para armazenar (por exemplo) 14 valores booleanos, seriam necessários no mínimo 14 bytes. Se estes 14 booleanos fossem armazenados em um inteiro (que normalmente possui 32 bits, que são 4 bytes), usaria apenas 4 bytes.

Array com tamanho fixo no PHP (SplFixedArray)

Resumo:

PHP oferece nativamente o tipo array, que possui bastante flexibilidade. As principais características do array de PHP é que ele permite índices inteiros ou alfanuméricos, e é auto-redimensionável, ou seja, cresce ou diminui conforme elementos são adicionados ou removidos.

Quem já trabalhou com linguagens mais baixo nível, como C ou C++, deve saber que manter o controle sobre um array auto-redimensionável implica em perda de performance em função da realocação de memória. Para prover uma solução mais restrita e mais rápida para PHP, foi criada a classe SplFixedArray, disponível a partir da versão 5.3 de PHP. Ela só aceita inteiros como índices (de zero até o tamanho menos um) e tem tamanho fixo (definido na criação do objeto), embora possa ser redimensionado a qualquer momento. Quanto menos redimensionamento é feito, mais ela tende a ser mais rápida que um array convencional.

Construções da Linguagem PHP

Resumo:

A linguagem PHP, assim como qualquer linguagem de programação, é formada por construções da linguagem. Além das estruturas básicas de programação (estruturas condicionais, estruturas de repetição, sintaxe para criação de classes, sintaxe para criação de funções, etc.), a linguagem possui algumas funções "built-in", ou seja, funções embutidas no núcleo da linguagem.

"Foreach" vs. "For" em PHP

Resumo:
performance

Hoje, em uma discussão em uma lista de PHP, fui surpreendido com a informação de que a estrutura "for" era mais rápida que a estrutura "foreach". Depois me deram a fonte da informação: The PHP Benchmark. Na fonte, diz que o "for" é mais rápido para escrita, mas é mais lento para leitura dos elementos percorridos. Observando o código do site, cheguei a conclusão de que ele estava meio furado.