Workshop: Deploy descomplicado de aplicações em VPS 🚀

Conhecendo o Alternative PHP Cache (APC)

Publicado em 25/05/2016

Atualizado em 04/06/2024

O APC é um cache de opcode que pode aumentar exponencialmente o desempenho da sua aplicação.

Entendendo Opcode:

Quando realizada um requisição para um script php, o engine do PHP lê o script e compila em bytecode. O bytecode está em um nível intermediário entre a linguagem de máquina e o código-fonte. Ele não é um executável, porém pode ser interpretado por uma máquina virtual, tendo maior portabilidade, pois independe da arquitetura do ambiente. No PHP, o bytecode gerado é chamado de opcode. O APC guarda o cache em opcode, o qual é reutilizado nas requisições subsequentes, ou seja, ele busca um opcode, o qual está em nível intermediário e será retornado de forma mais rápida. Com isso, ele reduz o tempo de processamento e melhora o desempenho do site ou sistema significativamente.

Instalação:

Em distribuições como Ubuntu, você pode facilmente instalar o APC  com o comando abaixo:

sudo apt-get install php-apc

Após instalar, o APC virá com um script o apc.php, que pode ser utilizado para administração do cache através de uma interface gráfica. Para acessar este arquivo será solicitada uma senha a qual pode ser definida dentro do arquivo.

Cache de objetos com APC:

Com APC você pode ter cache de objetos de uma forma simples, por padrão as funções do APC já fazem serialização de objeto antes de inseri-lo no cache e desserialização na hora de obtê-lo do cache. Para Inserir, basta fazer o seguinte:

<?php

// classe para armazenar dados do usuario

class usuario {

      private $id;

      private $nome;

      private $email;

      private $telefone;



      public function setId($id) {

            $this->id = $id;

      }

      public function getId() {

            return $this->id;

      }



      public function setNome($nome) {

            $this->nome = $nome;

      }

      public function getNome() {

            return $this->nome;

      }



      public function setEmail($email) {

            $this->email = $email;

      }

      public function getEmail() {

            return $this->email;

      }

}



// verifica se objeto consta no cache

if ($usuario = apc_fetch('usuario')) {

      echo "Dados no Cache: ";

} else {

      // criar cache para objeto usuario

      $usuario = new Usuario();

      $usuario->setId(1);

      $usuario->setNome('Fernando');

      $usuario->setEmail('[email protected]');

            // adicionar objeto usuário no cache

      apc_add('usuario', $usuario);

}



echo "<pre>";

echo $usuario->getId() . PHP_EOL;

echo $usuario->getNome() . PHP_EOL;

echo $usuario->getEmail() . PHP_EOL;

echo "</pre>";



Para limpar o cache você pode utilizar:

apc_delete('nome_variável');

Para limpar todo o cache OPCode você pode utilizar:

apc_clear_cache();

Documentação:

A documentação pode ser encontrada diretamente no link http://php.net/manual/pt_BR/book.apc.php

Conclusão:

Tendo em vista que o cache fica dentro da memória RAM, você deve pesar a necessidade, o tamanho da aplicação e o que você tem de recursos disponíveis antes de utilizar este tipo de ferramenta, mas ao utilizar o conceito de cache de objetos de forma correta você obterá um crescimento de desempenho de forma exponencial. A ferramenta em si oferece várias funções que facilitam a criação e manipulação de cache, com isso aumentando a velocidade de produção ao utilizar o conceito.

O que você achou deste conteúdo?

O que você achou deste conteúdo?

Fernando
Fernando Nunes
Assistente de desenvolvimento em PHP na Kinghost – Entusiasta do estudo de orientação a objeto e de todos os desafios e complexidades relacionados a ele.
Fernando
Fernando Nunes
Assistente de desenvolvimento em PHP na Kinghost – Entusiasta do estudo de orientação a objeto e de todos os desafios e complexidades relacionados a ele.

Compartilhe esse conteúdo com alguém que possa gostar também

Receba todo mês conteúdos
incríveis como esses para
seguir evoluindo

Conteúdos relacionados

Saber o que é HTTPS significa entender que vai muito além de um protocolo de segurança, mas sim um recurso essencial para proteger a credibilidade do seu negócio e até mesmo a performance das suas páginas. Mais do que pensar no layout das suas páginas, nos produtos que você vai oferecer ou até mesmo o...
O wireframe é uma ferramenta de alinhamento técnico, validação de requisitos e muito útil para a redução de retrabalho. Quando bem elaborado, antecipa problemas de navegação, arquitetura da informação e fluxo de usuário, economizando recursos em outras etapas. No desenvolvimento de produtos digitais, decisões tomadas nas primeiras fases impactam diretamente no custo, prazo e performance...
Diferentemente de builders tradicionais baseados em templates, o Lovable produz código editável e pronto para ser integrado a um repositório GitHub. Ou seja, é muito mais do que uma solução de prototipagem, é o ponto de partida para produtos reais. A criação de aplicações e sites por meio de IA generativa deixou de ser experimento...
A vCPU serve para executar processos dentro do sistema operacional da máquina virtual, permitindo que aplicações rodem como se estivessem em um servidor físico próprio. Conhecer esse modelo pode ser ideal para quem quer maior eficiência em um mesmo hardware. A virtualização é a base da infraestrutura moderna e, dentro de ambientes de cloud computing,...

Mensagens para você