Blackfire.io: um mergulho profundo no perfil de desempenho para aplicativos PHP mais rápidos
ninguém gosta de aplicativos lentos e pesados, especialmente ao lidar com bancos de dados e milhões de solicitações diárias em expansão rápida. O perfil oferece uma solução, fornecendo informações sobre o consumo de recursos de um programa (tempo e memória). Isso permite a identificação e resolução de gargalos de desempenho. Existem inúmeras ferramentas de perfil, cada uma empregando diferentes metodologias.
Duas abordagens de perfil primário são amostragem e instrumentação. A amostragem captura periodicamente instantâneos da pilha de chamadas ou da memória, afetando minimamente o desempenho, mas potencialmente perdendo detalhes. Por outro lado, a instrumentação insere instruções de perfil diretamente no código (manual ou automaticamente no nível do bytecode), oferecendo detalhes precisos, mas com uma sobrecarga de desempenho maior.
Blackfire.io se destaca. Este perfil da próxima geração da Web usa instrumentação automática sem sacrificar o desempenho do aplicativo. Desenvolvido por Sensiolabs (criadores da estrutura de Symfony), o Blackfire permite testes contínuos de desempenho sem exigir modificações de código.
acessível através de uma extensão Chrome ou interface da linha de comando, o Blackfire é facilmente integrado a vários ambientes, incluindo Homestead. Este tutorial demonstra o uso do Blackfire na construção de aplicativos mais rápidos em uma configuração aprimorada de Homestead.
Recursos de chave:
Começando:
Depois de acessar sua caixa Vagrant via Vagrant SSH
, crie uma conta Blackfire (se você ainda não possui uma). Recupere suas credenciais (cliente e servidor) nas configurações de perfil do Blackfire. Atualize seu arquivo Homestead.yaml
(localizado no diretório raiz da sua caixa de vagabundo) com estas credenciais:
blackfire:
- id: "Server Id here"
token: "Server token here"
client-id: "Client Id here"
client-token: "Client token here"
Blackfire Architecture:
Blackfire compreende cinco componentes principais:
(a sonda, agente e cliente são pré-instalados em Homestead aprimorados.)
terminologia essencial:
criando um script php:
Let's Profile Um script envolvendo interações de banco de dados. Para resultados realistas, usaremos Faker para gerar dados fictícios, evitando a inclusão de sobrecarga de Faker em nossa análise principal.
1. Geração de dados dummy (userproviderjson.php):
$faker->name, 'email' => $faker->email, 'city' => $faker->city,];
}
file_put_contents('data/users.json', json_encode($data));
echo 'JSON file generated.';
Execute este script usando php userproviderjson.php
. Isso cria data/users.json
.
2. Configuração do banco de dados:
Crie um banco de dados MySQL ( Blackfire_tutorial
) e tabela ( sample_users
) com colunas apropriadas.
3. Script principal (benchmark-before.php):
prepare("INSERT INTO sample_users (name, email, city) VALUES (?, ?, ?)");
$stmt->execute([$user['name'], $user['email'], $user['city']]);
}
}
SaveCustomers($db);
echo 'Users imported successfully.';
Acesse este script por meio de seu URL para preencher o banco de dados.
4. Perfil inicial:
usando a extensão do Chrome Blackfire, perfil benchmark-sefore.php
, criando um novo perfil de referência.
A interface da web do Blackfire fornece análise detalhada: uma barra de ferramentas resumindo as métricas -chave, um gráfico de chamadas Visualizando o fluxo de execução, listas de funções com informações de tempo detalhadas e várias métricas (consultas SQL, uso de memória, etc.).
5. Otimização e re-perfil:
otimiza o script para reduzir as chamadas de banco de dados (por exemplo, usando uma única instrução de inserção com vários valores). Crie benchmark-after.php
com o código otimizado. Re-perfil, comparando com o perfil de referência.
A comparação destaca as melhorias de desempenho.
interface da linha de comando:
CLI da Blackfire ( Blackfire
) permite o perfil através do terminal:
Blackfire Curl http: // your-url
Blackfire Run php yourscript.php
Blackfire--New-Reference Curl http: // your-url
Blackfire --Reference = perfil-id Curl http: // your-url
Testes de desempenho:
Blackfire (usuários premium) permite a criação de testes de desempenho dentro de um arquivo .
Blackfire.io é uma ferramenta poderosa para otimizar o desempenho do aplicativo PHP. Sua facilidade de uso, análise detalhada e recursos de teste contínuos o tornam inestimável para desenvolvedores que buscam aplicações de alto desempenho. As perguntas frequentes fornecidas esclarecem ainda mais seus recursos e benefícios. Lembre -se de substituir os valores dos espaços reservados nos exemplos de código por suas credenciais reais de ID de servidor, tokens e banco de dados.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3