搜索
首页后端开发php教程与黑火的增压应用程序的深入演练

blackfire.io:深入研究更快的PHP应用程序的性能分析

>没有人喜欢缓慢,笨拙的应用程序,尤其是在处理快速扩展的数据库和数百万日常请求时。 分析提供了一个解决方案,提供了对程序资源消耗(时间和内存)的见解。这允许识别和解决性能瓶颈。 存在许多分析工具,每种工具都采用不同的方法。

An In-depth Walkthrough of Supercharging Apps with Blackfire

>两种主要分析方法是采样和仪器。采样定期捕获呼叫堆栈或内存的快照,最小化的性能,但可能丢失了细节。相反,仪器将分析指令直接插入代码(手动或自动在字节码级别上),提供精确的详细信息,但具有更大的性能开销。

BlackFire可以通过Chrome扩展或命令行接口访问,很容易集成到包括Homestead在内的各种环境中。该教程展示了Blackfire在改进的设置中构建更快的应用程序中的用途。

密钥功能:

零影响仪器:与传统介绍者不同,黑火不会减慢您的应用程序。

> 通过Chrome扩展名或命令行工具。
  • 宽兼容性:与众多云提供商和虚拟机,包括宅基地的无缝集成。
  • 模块化体系结构:>包括一个探针(PHP扩展),代理(服务器端守护程序),companion(Chrome Extension),客户端(CLI)和基于Web的接口。
  • 连续测试:
  • 主动绩效管理而没有代码更改。
  • 详细的可视化:
  • 图形表示有效瓶颈分析的执行流和性能指标。
  • 入门:

    >通过vagrant ssh访问您的流浪框后,创建一个Blackfire帐户(如果您还没有一个帐户)。 从Blackfire配置文件设置中检索您的凭据(客户端和服务器)。 使用以下凭据更新您的homestead.yaml>文件(位于Vagrant Box的根目录中)

    blackfire:
        - id: "Server Id here"
          token: "Server token here"
          client-id: "Client Id here"
          client-token: "Client token here"

    黑火体系结构:

    黑火包括五个核心组件:

      >
    • >探针: php扩展工具仪器和收集性能数据(Linux和MacOS)。 >
    • 代理:
    • 服务器端守护程序汇总和将配置文件信息传输到Blackfire。
    • 伴侣:
    • >基于浏览器的分析的Google Chrome扩展名。
    • 客户端:
    • 同伴的命令行等效。>
    • Web接口:
    • 一个基于Web的仪表板,用于可视化和比较配置文件数据。>
    • (探针,代理和客户端已预先安装在Homestead改进中。)

    基本术语:

    参考资料:比较的基线性能测量。

      独家时间:
    • >执行功能所花费的时间,不包括外部呼叫。
    • 包含时间:
    • >总执行时间,包括外部呼叫。
    • 热路径:
    • 分析过程中应用程序中最活跃的部分。>
    • 分析php脚本:
    • >
    >让我们介绍一个涉及数据库交互的脚本。 为了进行现实的结果,我们将使用Faker生成虚拟数据,避免在我们的主要分析中包括Faker的开销。

    1。虚拟数据生成(userproviderjson.php):

    >使用

    运行此脚本。这会创建

    <?php
    require_once('vendor/autoload.php');
    
    $num = isset($_GET['num']) ? $_GET['num'] : 1000;
    $data = [];
    
    $faker = Faker\Factory::create();
    
    if(!file_exists('data')) {
        mkdir('data');
    }
    
    for ($i = 0; $i < $num; $i++) {
        $data[] = ['name' => $faker->name, 'email' => $faker->email, 'city' => $faker->city,];
    }
    
    file_put_contents('data/users.json', json_encode($data));
    
    echo 'JSON file generated.';
    2。数据库设置:

    php UserProviderJSON.php data/users.json创建一个具有适当列的MySQL数据库(

    )和表(

    )。

    3。主脚本(Benchmark-before.php):

    blackfire_tutorial sample_users

    >通过其URL访问此脚本以填充数据库。>

    4。初始分析:

    <?php
    $db = new PDO('mysql:host=localhost;dbname=blackfire_tutorial;charset=utf8', 'homestead', 'secret');
    
    function SaveCustomers($db) {
        $users = json_decode(file_get_contents('data/users.json'), true);
        foreach ($users as $user) {
            $stmt = $db->prepare("INSERT INTO sample_users (name, email, city) VALUES (?, ?, ?)");
            $stmt->execute([$user['name'], $user['email'], $user['city']]);
        }
    }
    
    SaveCustomers($db);
    echo 'Users imported successfully.';
    使用Blackfire Chrome扩展名,配置文件

    ,创建一个新的参考配置文件。

    >

    Blackfire Web界面提供了详细的分析:工具栏汇总了关键指标,可视化执行流,具有详细定时信息的功能列表以及各种指标(SQL查询,内存使用等)。

    benchmark-before.php5。优化和重新封建:

    >优化脚本以减少数据库调用(例如,使用具有多个值的单个插入语句)。 用优化的代码创建benchmark-after.php。重新构图,与参考配置文件进行比较。

    An In-depth Walkthrough of Supercharging Apps with Blackfire

    比较突出了绩效的改进。

    命令行接口:

    >黑火的CLI(

    )允许通过终端进行分析:> blackfire

      proping http请求:
    • > blackfire curl http://your-url
    • 分析CLI脚本:
    • > blackfire run php your-script.php创建一个参考资料:
    • blackfire --new-reference curl http://your-url
    • 与参考值进行比较:
    • blackfire --reference=profile-id curl http://your-url>

    性能测试:

    blackfire(高级用户)允许在

    >文件中创建性能测试,从而定义了各种指标的断言。.blackfire.yml

    结论: BlackFire.IO是优化PHP应用程序性能的强大工具。它的易用性,详细的分析和连续的测试功能使其对于努力为高性能应用程序而进行的开发人员无价。 提供的常见问题解答进一步阐明了其功能和收益。 请记住,用您的实际服务器ID,代币和数据库凭据替换代码示例中的占位符值。>

以上是与黑火的增压应用程序的深入演练的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
11个最佳PHP URL缩短脚本(免费和高级)11个最佳PHP URL缩短脚本(免费和高级)Mar 03, 2025 am 10:49 AM

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

在Laravel中使用Flash会话数据在Laravel中使用Flash会话数据Mar 12, 2025 pm 05:08 PM

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

构建具有Laravel后端的React应用程序:第2部分,React构建具有Laravel后端的React应用程序:第2部分,ReactMar 04, 2025 am 09:33 AM

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

简化的HTTP响应在Laravel测试中模拟了简化的HTTP响应在Laravel测试中模拟了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

php中的卷曲:如何在REST API中使用PHP卷曲扩展php中的卷曲:如何在REST API中使用PHP卷曲扩展Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

在Codecanyon上的12个最佳PHP聊天脚本在Codecanyon上的12个最佳PHP聊天脚本Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

宣布 2025 年 PHP 形势调查宣布 2025 年 PHP 形势调查Mar 03, 2025 pm 04:20 PM

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长

Laravel中的通知Laravel中的通知Mar 04, 2025 am 09:22 AM

在本文中,我们将在Laravel Web框架中探索通知系统。 Laravel中的通知系统使您可以通过不同渠道向用户发送通知。今天,我们将讨论您如何发送通知OV

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具