Entendendo os conceitos de caching em PHP




      Encontro Nacional Linuxchix Brasil
            Brasília – DF – Brasil
              Setembro – 2007

               Adler Medrado
Entendendo os conceitos de caching em PHP

Apresentação

●   Desenvolvedor/Analista no MDIC
●   Consultor pela Nesher Technologies
●   Instrutor de PHP na X25 Treinamentos
●   Membro da coordenação do grupo de
    usuários PHP do DF
●   Entusiasta de PHP e Software Livre
Entendendo os conceitos de caching em PHP

Introdução

    Esta palestra visa demonstrar os conceitos
    básicos de:
●   Opcodes PHP
●   Quando é vantagem usar Cache
●   Caching de conteúdo
●   Caching de Recordsets
●   Ferramentas para caching
Entendendo os conceitos de caching em PHP

Opcodes PHP

●   Abreviação de Operation Code.
●   É um trecho de instrução a ser executada
    pelo computador.
●   Linguagem de máquina
●   Resultado da conversão do código de
    programação para linguagem de máquina
●   Linguagem de máquina é difícil e tediosa
    para seres humanos desenvolverem
    diretamente
Entendendo os conceitos de caching em PHP

Funcionamento do PHP sem uso de caching

                                    FONTES DE DADOS


                                        BANCO
                                          DE
                                        DADOS


BROWSER      INTERNET      SCRIPT
                            PHP
                                       DOCUMENTO
                                          XML
Entendendo os conceitos de caching em PHP

Funcionamento do PHP sem uso de caching
                                    FONTES DE DADOS



                                        BANCO
                                          DE
                                        DADOS



BROWSER                    SCRIPT
             INTERNET       PHP
                                       DOCUMENTO
                                          XML




                          Cache
Entendendo os conceitos de caching em PHP

Caching de conteúdo

●   É viável quando um determinado conteúdo
    não é modificado a todo instante. Não é
    viável para websites ou sistemas que
    possuem uma atualização de conteúdo
    muito constante.
●   Exemplo:
    –   Website de notícias com cache que é
        atualizado a cada 10 minutos
Entendendo os conceitos de caching em PHP

Caching de conteúdo – Sem cache
Entendendo os conceitos de caching em PHP

Caching de conteúdo – Com cache
Entendendo os conceitos de caching em PHP

Caching de Recordset

●   É viável quando algumas áreas do seu site
    são muito dinâmicas e com isso o cache de
    conteúdo se torna inviável.
●   Exemplo:
    –   O mesmo website de notícias utilizado
        anteriormente.
Entendendo os conceitos de caching em PHP

Caching de Recordset
Entendendo os conceitos de caching em PHP

APC – Alternative PHP Cache

●   Extensão aberta, livre e robusta.
●   Visa prover um framework que permita
    otimização de códigos PHP através de
    caching
●   Instalável via PECL
    –   PHP Extension Community Library
    –   http://pecl.php.net
Entendendo os conceitos de caching em PHP

APC – Alternative PHP Cache

O APC é composto das seguintes funções:

●apc_add – Armazena variável no cache
●apc_cache_info - Retorna dados armazenados pelo APC

●apc_clear_cache – Limpa todo o cache

●apc_define_constants – Define constantes para uso posterior

●apc_delete – Remove uma variável guardada no cache

●apc_fetch – Retorna variável gravaa no cache

●apc_load_constants – Carrega um conjunto de constantes do cache

●apc_sma_info – Retorna informações da memória compartilhada

●apc_store – Armazena uma variável no cache




Exemplo:
   Mesmo website usado anteriormente.
Entendendo os conceitos de caching em PHP

APC – Alternative PHP Cache
Entendendo os conceitos de caching em PHP
Outras alternativas

●   PHP Extension and Application Repository
    –   PEAR_Cache
    –   PEAR_Cache_Lite
●   Zend_Cache
    –   Simples Exemplo
Entendendo os conceitos de caching em PHP
Outras alternativas
<?php
$frontendOptions = array(
   'lifetime' => 30,           // tempo de vida do cache
   'automatic_serialization' => false // valor default
);

$backendOptions = array('cache_dir' => './tmp/');

$cache = Zend_Cache::factory('Output', 'File', $frontendOptions, $backendOptions);

if(!$cache->start('mypage')) {

    echo 'Olá mundo! ';
    echo 'Foi criado o cache';

    $cache->end(); // Salva o cache e manda pro browser
}

echo 'Não foi criado cache';
Entendendo os conceitos de caching em PHP
Outras alternativas
●   eAccelerator - http://eaccelerator.net/
●   Zend Optimizer - http://www.zend.com
●   ionCube PHP Accelerator - http://www.ioncube.com
Entendendo os conceitos de caching em PHP




 Perguntas?
Entendendo os conceitos de caching em PHP




    Obrigado!
            http://www.neshertech.net
            http://www.neshertech.net/adler

Entendendo Conceitos Caching com PHP

  • 1.
    Entendendo os conceitosde caching em PHP Encontro Nacional Linuxchix Brasil Brasília – DF – Brasil Setembro – 2007 Adler Medrado
  • 2.
    Entendendo os conceitosde caching em PHP Apresentação ● Desenvolvedor/Analista no MDIC ● Consultor pela Nesher Technologies ● Instrutor de PHP na X25 Treinamentos ● Membro da coordenação do grupo de usuários PHP do DF ● Entusiasta de PHP e Software Livre
  • 3.
    Entendendo os conceitosde caching em PHP Introdução Esta palestra visa demonstrar os conceitos básicos de: ● Opcodes PHP ● Quando é vantagem usar Cache ● Caching de conteúdo ● Caching de Recordsets ● Ferramentas para caching
  • 4.
    Entendendo os conceitosde caching em PHP Opcodes PHP ● Abreviação de Operation Code. ● É um trecho de instrução a ser executada pelo computador. ● Linguagem de máquina ● Resultado da conversão do código de programação para linguagem de máquina ● Linguagem de máquina é difícil e tediosa para seres humanos desenvolverem diretamente
  • 5.
    Entendendo os conceitosde caching em PHP Funcionamento do PHP sem uso de caching FONTES DE DADOS BANCO DE DADOS BROWSER INTERNET SCRIPT PHP DOCUMENTO XML
  • 6.
    Entendendo os conceitosde caching em PHP Funcionamento do PHP sem uso de caching FONTES DE DADOS BANCO DE DADOS BROWSER SCRIPT INTERNET PHP DOCUMENTO XML Cache
  • 7.
    Entendendo os conceitosde caching em PHP Caching de conteúdo ● É viável quando um determinado conteúdo não é modificado a todo instante. Não é viável para websites ou sistemas que possuem uma atualização de conteúdo muito constante. ● Exemplo: – Website de notícias com cache que é atualizado a cada 10 minutos
  • 8.
    Entendendo os conceitosde caching em PHP Caching de conteúdo – Sem cache
  • 9.
    Entendendo os conceitosde caching em PHP Caching de conteúdo – Com cache
  • 10.
    Entendendo os conceitosde caching em PHP Caching de Recordset ● É viável quando algumas áreas do seu site são muito dinâmicas e com isso o cache de conteúdo se torna inviável. ● Exemplo: – O mesmo website de notícias utilizado anteriormente.
  • 11.
    Entendendo os conceitosde caching em PHP Caching de Recordset
  • 12.
    Entendendo os conceitosde caching em PHP APC – Alternative PHP Cache ● Extensão aberta, livre e robusta. ● Visa prover um framework que permita otimização de códigos PHP através de caching ● Instalável via PECL – PHP Extension Community Library – http://pecl.php.net
  • 13.
    Entendendo os conceitosde caching em PHP APC – Alternative PHP Cache O APC é composto das seguintes funções: ●apc_add – Armazena variável no cache ●apc_cache_info - Retorna dados armazenados pelo APC ●apc_clear_cache – Limpa todo o cache ●apc_define_constants – Define constantes para uso posterior ●apc_delete – Remove uma variável guardada no cache ●apc_fetch – Retorna variável gravaa no cache ●apc_load_constants – Carrega um conjunto de constantes do cache ●apc_sma_info – Retorna informações da memória compartilhada ●apc_store – Armazena uma variável no cache Exemplo: Mesmo website usado anteriormente.
  • 14.
    Entendendo os conceitosde caching em PHP APC – Alternative PHP Cache
  • 15.
    Entendendo os conceitosde caching em PHP Outras alternativas ● PHP Extension and Application Repository – PEAR_Cache – PEAR_Cache_Lite ● Zend_Cache – Simples Exemplo
  • 16.
    Entendendo os conceitosde caching em PHP Outras alternativas <?php $frontendOptions = array( 'lifetime' => 30, // tempo de vida do cache 'automatic_serialization' => false // valor default ); $backendOptions = array('cache_dir' => './tmp/'); $cache = Zend_Cache::factory('Output', 'File', $frontendOptions, $backendOptions); if(!$cache->start('mypage')) { echo 'Olá mundo! '; echo 'Foi criado o cache'; $cache->end(); // Salva o cache e manda pro browser } echo 'Não foi criado cache';
  • 17.
    Entendendo os conceitosde caching em PHP Outras alternativas ● eAccelerator - http://eaccelerator.net/ ● Zend Optimizer - http://www.zend.com ● ionCube PHP Accelerator - http://www.ioncube.com
  • 18.
    Entendendo os conceitosde caching em PHP Perguntas?
  • 19.
    Entendendo os conceitosde caching em PHP Obrigado! http://www.neshertech.net http://www.neshertech.net/adler