Blackfire.io: una inmersión profunda en el perfil de rendimiento para aplicaciones PHP más rápidas
nadie disfruta de aplicaciones lentas y difíciles de manejar, especialmente cuando se trata de bases de datos en rápida expansión y millones de solicitudes diarias. El perfil ofrece una solución, proporcionando información sobre el consumo de recursos de un programa (tiempo y memoria). Esto permite la identificación y resolución de los cuellos de botella de rendimiento. Existen numerosas herramientas de perfil, cada una empleando diferentes metodologías.
Dos enfoques principales de perfiles son el muestreo e instrumentación. El muestreo captura periódicamente las instantáneas de la pila o memoria de llamadas, impactando mínimamente el rendimiento pero los detalles potencialmente faltantes. La instrumentación, por el contrario, inserta instrucciones de perfiles directamente en el código (ya sea manual o automáticamente a nivel de código de bytecodo), ofreciendo detalles precisos pero con una sobrecarga de rendimiento mayor.
Blackfire.io se distingue. Este perfilador web de próxima generación utiliza instrumentación automática sin sacrificar el rendimiento de la aplicación. Desarrollado por Sensiolabs (creadores del marco Symfony), Blackfire permite pruebas de rendimiento continuas sin requerir modificaciones de código.
Accesible a través de una extensión de Chrome o interfaz de línea de comandos, Blackfire se integra fácilmente en varios entornos, incluida la granja. Este tutorial demuestra el uso de Blackfire en la construcción de aplicaciones más rápidas dentro de una configuración mejorada de Homestead.
características de la tecla:
Empezando:
Después de acceder a su cuadro Vagrant a través de Vagrant ssh
, cree una cuenta de fuego negro (si aún no tiene uno). Recupere sus credenciales (cliente y servidor) de su configuración de perfil de Blackfire. Actualice su archivo homestead.yaml
(ubicado en el directorio raíz de su cuadro de Vagrant) con estas credenciales:
blackfire:
- id: "Server Id here"
token: "Server token here"
client-id: "Client Id here"
client-token: "Client token here"
Blackfire Architecture:
Blackfire comprende cinco componentes principales:
(la sonda, el agente y el cliente están preinstalados en homestead mejorados.)
esencial Terminology:
Perfilando un script php:
Perfilemos un script que involucra interacciones de base de datos. Para obtener resultados realistas, usaremos Faker para generar datos ficticios, evitando incluir la sobrecarga de Faker en nuestro análisis primario.
1. Generación de datos ficticios (userProviderJson.php):
$faker->name, 'email' => $faker->email, 'city' => $faker->city,];
}
file_put_contents('data/users.json', json_encode($data));
echo 'JSON file generated.';
Ejecute este script usando php userProviderJson.php
. Esto crea data/users.json
.
2. Configuración de la base de datos:
cree una base de datos mysql ( blackfire_tutorial
) y table ( sample_users
) con columnas apropiadas.
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.';
Acceda a este script a través de su URL para completar la base de datos.
4. Perfil inicial:
usando la extensión de Blackfire Chrome, perfil benchmark-before.php
, creando un nuevo perfil de referencia.
La interfaz web Blackfire proporciona un análisis detallado: una barra de herramientas que resume métricas clave, un flujo de ejecución de visualización de gráficos de llamadas, listas de funciones con información de sincronización detallada y varias métricas (consultas SQL, uso de memoria, etc.).
5. Optimización y repertirización:
optimice el script para reducir las llamadas de la base de datos (por ejemplo, utilizando una sola instrucción de inserción con valores múltiples). Create Benchmark-After.php
con el código optimizado. Reprofile, comparando con el perfil de referencia.
La comparación destaca las mejoras de rendimiento.
Command-line Interface:
Blackfire's Cli ( Blackfire
) permite perfilar a través del terminal:
Blackfire curl http: // your-url
Blackfire ejecutar php your-script.php
Blackfire ---New-Reference Curl http: // your-url
blackfire --reference = perfil-id curl http: // your-url
Prueba de rendimiento:
Blackfire (usuarios premium) permite crear pruebas de rendimiento dentro de un archivo . Blackfire.yml
, definiendo afirmaciones sobre varias métricas.
Conclusión:
Blackfire.io es una herramienta poderosa para optimizar el rendimiento de la aplicación PHP. Su facilidad de uso, análisis detallado y capacidades de pruebas continuas lo hacen invaluable para los desarrolladores que se esfuerzan por aplicaciones de alto rendimiento. Las preguntas frecuentes proporcionadas aclaran aún más sus capacidades y beneficios. Recuerde reemplazar los valores del marcador de posición en ejemplos de código con su ID de servidor real, tokens y credenciales de base de datos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3