搜索
首页后端开发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
可以在PHP会话中存储哪些数据?可以在PHP会话中存储哪些数据?May 02, 2025 am 12:17 AM

phpsessionscanStorestrings,数字,数组和原始物。

您如何开始PHP会话?您如何开始PHP会话?May 02, 2025 am 12:16 AM

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

什么是会话再生,如何提高安全性?什么是会话再生,如何提高安全性?May 02, 2025 am 12:15 AM

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。

使用PHP会话时有哪些性能考虑?使用PHP会话时有哪些性能考虑?May 02, 2025 am 12:11 AM

PHP会话对应用性能有显着影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHP会话与Cookie有何不同?PHP会话与Cookie有何不同?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

PHP如何识别用户的会话?PHP如何识别用户的会话?May 01, 2025 am 12:23 AM

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

确保PHP会议的一些最佳实践是什么?确保PHP会议的一些最佳实践是什么?May 01, 2025 am 12:22 AM

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

PHP会话文件默认存储在哪里?PHP会话文件默认存储在哪里?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

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脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。