Pular para o conteúdo principal
Certamente um dos erros mais comuns que os desenvolvedores PHP enfrentam, principalmente em aplicações que processam grandes quantidades de dados, e dependendo da causa do problema nem sempre é simples resolver e pode se tornar uma gigantesca dor de cabeça. Contudo, na maioria das vezes que você se depara com esse erro é porque está carregando mais na memória do que o PHP tem configurado para lidar com um processo, é ai que aparece o tal “Allowed Memory Size Exhausted”. Se você não tem certeza de quanto é o limite definido para o seu PHP, ele é incluído na mensagem de erro, embora esteja em bytes, abaixo tem algumas conversões para que visualize melhor.
  • 8388608 - 8 MB
  • 16777216 - 16 MB
  • 33554432 - 32 MB
  • 67108864 - 64 MB
  • 134217728 - 128 MB
  • 268435456 - 256 MB
  • 536870912 - 512 MB
  • 1073741824 - 1 GB

Como resolver o meu problema?

A primeira ação a ser executada é aumentar o limite de memória da sua aplicação PHP, mas lembre-se que é uma resolução temporária do seu problema, a ideia é que você aumente a quantidade de memória o suficiente para rodar a aplicação e identificar o que está causando este uso excessivo de memória. Após corrigir o problema abaixe o limite de memória para rodar apenas com o necessário, assim não fazendo uso desnecessário de memória RAM que poderia ser usada para requisições de outras aplicações. Mas então, como fazer isto? Pois bem, há duas maneiras de se aumentar a memória RAM disponível para suas aplicações, abaixo você vai aprender os dois modos.

Edição via cPanel

1. Acesse a opção de configurações do PHP dentro do cPanel 2. Selecione o botão “Switch to PHP Options” 3. Nessa página serão listadas várias configurações do PHP, inclusive o limite de memória.

Aumentar o limite de memória com programação

1. Abra o seu código PHP, e bem no início após a abertura da tag ”<?php” adicione a linha de código:
Dessa forma você dá ao PHP memória extra apenas quando esse trecho de código é chamado, ao invés de aumentar o limite de memória para todos os processos.

Dica

Existe uma ferramenta muito útil para contar com essa e com muitas outras situações que é o Xdebug, ele ajuda a diagnosticar a quantidade de memória que é usada e em qual trecho do seu código grandes quantidades de memória são usadas. Para mais informações acesse a documentação do PHP clicando aqui