codecamp

IntelliJ IDEA:分析Zend Debugger的性能分析数据

分析Zend Debugger的性能分析数据

此功能仅在Ultimate版本中受支持。
以下内容仅在安装并启用PHP插件时有效!

当启用与Zend Debugger性能分析的集成时,IntelliJ IDEA提供配置文件快照的可视化表示。IntelliJ IDEA打开一个单独的编辑器选项卡,其中包含四个视图,其中数据基于不同的标准显示。

使用Zend Debugger,在零配置调试会话中支持分析。

要收集性能分析数据并对其进行分析,请执行以下常规步骤:

  • 启动零配置Zend Debugger会话
  • 检查性能分析数据

启动零配置Zend Debugger会话

  1. 生成小书签以切换调试器。这些小书签将显示在浏览器的工具栏上。它们提供对调试器cookie的控制,通过它们,您将激活和停用调试器。
    1. 根据浏览器类型,通过执行以下操作之一在浏览器中启用“书签”工具栏:
      • 在Firefox中,选择:查看|工具栏|书签工具栏。
      • 在Chrome中,选择:书签|显示书签栏。
    2. 在“设置/首选项”对话框(Ctrl+Alt+S)中,导航到“语言和框架|PHP|调试”。
    3. 在打开的“调试”页面上,单击“使用调试器标签”以从您喜欢的浏览器链接启动调试器。
    4. 在打开的“Zend Debugger”和“Xdebug书签”页面上,检查调试引擎设置,然后单击“生成”。将生成列出的与调试相关的操作的书签。
    5. 将生成的链接拖动到浏览器中的书签工具栏。
  2. 切换IntelliJ IDEA工具栏上的“开始监听PHP调试连接”按钮 开始监听php调试连接,使其更改为 停止监听php调试连接。之后,IntelliJ IDEA开始监听当前项目中使用的调试引擎的端口。调试端口在“设置/首选项”对话框(Ctrl+Alt+S)的“语言和框架|PHP|调试”页面上的IntelliJ IDEA级别中设置。
  3. 在浏览器中打开应用程序的起始页面,选择“启动调试器书签”以从浏览器激活调试引擎,重新加载当前页面(应用程序的起始页面),然后返回到IntelliJ IDEA。

    建立零配置调试会话可能会失败,没有遇到断点,因此脚本不会暂停。如果未错误配置或配置路径映射,或者未设置任何断点,则可能会发生这种情况。在后一种情况下,在“外部连接”区域中启用选择“在PHP脚本中的第一行中断”复选框或在主菜单上转到“运行|在PHP脚本中的第一行中断”选项也可能有所帮助。

    要使IntelliJ IDEA在脚本未暂停时显示通知,请在“设置”对话框的“调试”页面的“高级设置”区域中选中“如果调试会话已完成而未停止,则通知”复选框。

  4. 在打开的对话框中,选择配置文件的传入连接,然后单击“接受”。当您第一次接受来自此主机的连接时,“Zend Debugger的传入连接”对话框仅出现一次。 
    IntelliJ IDEA在单独的编辑器选项卡中显示收集的性能分析数据,其中包含所选分析器输出文件的名称。

检查分析数据

当您请求累积的性能分析数据时,IntelliJ IDEA会在单独的编辑器选项卡中打开其可视化的演示文稿。该选项卡以实现您当前正在分析的页面的文件命名,并由多个视图组成。在视图之间切换,以根据各种分析标准分析分析数据。

  • 在“执行统计信息”视图中,检查有关每个被调用函数的执行度量的摘要信息。
  • 在“调用树”视图中,浏览所有调用函数的执行路径。
  • 要探索特定函数的执行路径,请在“调用树”视图中选择有问题的函数,并在“被调用者”视图中查看其被调用者。
  • 要探索可能导致调用特定函数的所有路径,请在“调用树”视图中选择有问题的函数,并在“调用者”视图中检查其可能的调用者。
IntelliJ IDEA:使用Zend Debugger启用性能分析
IntelliJ IDEA:使用PHPUnit进行测试
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }