"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Guia para análise profunda do aplicativo de sobrecarga de Blackfire

Guia para análise profunda do aplicativo de sobrecarga de Blackfire

Postado em 2025-04-14
Navegar:412

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.

An In-depth Walkthrough of Supercharging Apps with Blackfire

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.

An In-depth Walkthrough of Supercharging Apps with Blackfire

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:

  • instrumentação zero-impact: Ao contrário dos perfiladores tradicionais, o Blackfire não diminui o seu aplicativo.
  • interface dual: perfil scripts php através da extensão Chrome ou a ferramenta de linha de comando.
  • Compatibilidade ampla: integração perfeita com numerosos provedores de nuvem e máquinas virtuais, incluindo Homestead.
  • arquitetura modular: compreende uma sonda (extensão PHP), agente (daemon do lado do servidor), companheiro (extensão Chrome), cliente (CLI) e interface baseada na Web.
  • teste contínuo: Gerenciamento de desempenho proativo sem alterações de código.
  • Visualização detalhada: representa graficamente os fluxos de execução e as métricas de desempenho para análise de gargalo eficaz.

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:

  • sonda: uma extensão php instrumentando o aplicativo e coletando dados de desempenho (Linux e MacOS).
  • agente: um daemon do servidor agregado e transmitindo informações de perfil para Blackfire.
  • Companion: A extensão do Google Chrome para perfil baseado em navegador.
  • client: o equivalente da linha de comando do Companion.
  • interface da web: um painel baseado na Web para visualizar e comparar o perfil Data.

(a sonda, agente e cliente são pré-instalados em Homestead aprimorados.)

terminologia essencial:

  • perfil de referência: Uma medição de desempenho da linha de base para comparação.
  • tempo exclusivo: tempo gasto executando uma função, excluindo chamadas externas.
  • tempo inclusivo: Tempo total de execução, incluindo chamadas externas.
  • caminhos quentes: as partes mais ativas do seu aplicativo durante o perfil.

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.

An In-depth Walkthrough of Supercharging Apps with Blackfire

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.

An In-depth Walkthrough of Supercharging Apps with Blackfire

A comparação destaca as melhorias de desempenho.

interface da linha de comando:

CLI da Blackfire ( Blackfire ) permite o perfil através do terminal:

  • Profiling http solicitações: Blackfire Curl http: // your-url
  • perfil scripts cli: Blackfire Run php yourscript.php
  • criando um perfil de referência: Blackfire--New-Reference Curl http: // your-url
  • Comparando com uma referência: 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 .

Conclusão:

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.

Tutorial mais recente Mais>

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