跳到内容
新问题

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

向wp-env添加初始XHProf支持 #48147

正常开放
想要合并1承诺
底座: 大旅行箱
选择基础分支

对话

乔麦吉尔
复制链接
成员

@乔姆吉尔 乔麦吉尔 评论2023年2月16日

什么?

这将更新配置脚本,以支持将新的--xhprof标志传递给wp env启动,它将为WordPress环境安装和配置XHProf支持。

为什么?

应用程序分析是开发人员用来发现代码中潜在性能瓶颈的重要工具,但传统上很难设置此工具。通过在中直接包含对XHProf探查器的支持wp-env公司,我们可以通过使这些工具更易于使用来“民主化分析”。

此外,WordPress Core Performance团队已经在使用这些工具来帮助识别WordPress-Core的潜在性能改进,通过将这些工具本地包含在这个软件包中,我们可以让许多人更容易根据自己的用例贡献分析信息。

怎么用?

这通过安装PECL存储库中的官方XHProfile包--xhprof公司标志被设置,并根据需要更新php.ini配置以支持评测php应用程序。

要启用评测,您需要包含启动评测器的代码,并存储或显示评测器在应用程序运行期间收集的数据。如何收集和分析分析分析分析数据的一个示例是使用XHGui(请参阅这些通过Docker安装的说明)和一个类似图书馆的PHP探查器将分析操作期间收集的数据发送到XHGui。此处演示了使用mu-plugin的简化设置:https://github.com/joemgill/wp-profiler.

测试说明

键盘测试说明

屏幕截图或屏幕广播

这将更新配置脚本,以支持向wp-env-start传递一个新的--xdebug标志,该标志将为WordPress环境安装和配置XHProf支持。要启用评测,您需要编辑wp-config.php文件以包含以下代码,其中包含“wp-settings.php`文件:```php(电话)//开始分析xhprof启用();/**设置WordPress变量和包含的文件*/需要一次ABSPATH。”wp-settings.php';//停止分析器$xhprof_data=xhprof禁用();//显示分析器运行的原始xhprof数据打印($xhprof_data);```有关如何配置XHProf的更多信息,请参阅:https://github.com/longxinH/xhprof.也可以在此处查看XHProf的原始Facebook文档:http://web.archive.org/web/20110514095512/http://mirror.facebook.net/facebook/xhprof/doc.html.
//当只有xdebug时,配置已更改param有改变。这个需要
//以便Docker在xdebug(扩展插件)标志更改。
//当只有xdebug时,配置已更改或xhprof参数有改变。这个
//需要以便Docker在任何一个标志更改。
复制链接
成员

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

建议的更改
//这样Docker就会在任何时候重建图像这个任一标志都会更改。
//这样Docker将在任一标志更改时重建图像。

参数选项(“xhprof”{
描述:
'启用XHProf。如果未通过,则关闭XHProf。',
类型:“字符串”,
复制链接
成员

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

如果只有一个XHProf模式,我认为这应该是一个布尔值。

复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

XHProf确实支持不同的配置模式,但我不确定通过CLI支持该配置与作为加载时传递给分析器的选项相比有多重要。请参见:https://github.com/joemcgill/wp-profiler/blob/trunk/plugin.php#L19-L24级有关如何通过代码而不是配置设置这些标志的示例。

复制链接
成员

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

说得好。我认为,如果人们必须首先配置此代码,我们不需要支持通过标志设置选项。如果我们确实找到了自动化wp-config.php更改的方法,那么将它们添加到标志中是有意义的。

@@-153,10+157,16@@function dockerFileContents(图像、配置){
}
}

//@todo:test兼容。
if(config.xhprof!==“关闭”){
复制链接
成员

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

如果xhprof标志是一个布尔值(见上文),可以这样写config.xhprof===真

@诺赫塔伦
复制链接
成员

整洁!这个扩展支持大多数PHP版本吗?我知道对于Xdebug,我们不得不对它不支持的一些PHP版本禁用它。

@乔麦吉尔
复制链接
成员 作者

谢谢你的快速浏览,@诺亚塔伦这是可行的,但肯定可以简化一点,所以我决定早点开始讨论。我会跟进你的上述评论。

我一直在争论的一件事是,我们是否应该尝试在这个PR中直接包含对XHGui的支持,还是最好让个别开发人员使用他们认为最有用的任何GUI选项。我很重视你在这个问题上的意见。

@乔麦吉尔
复制链接
成员 作者

根据官方XHProf PECL包的GitHub回购,它目前支持PHP版本7.2–8.2。

@诺亚塔伦
复制链接
成员

我一直在争论的一件事是,我们是否应该尝试在这个PR中直接包含对XHGui的支持,还是最好让个别开发人员使用他们认为最有用的任何GUI选项。我很重视你在这个问题上的意见。

我主要不是PHP开发人员,所以我以前没有使用过XHProf。GUI是大多数开发人员都希望得到的吗?

@乔麦吉尔
复制链接
成员 作者

GUI是大多数开发人员都希望得到的吗?

我认为直接包含它会让开发人员的体验更容易,因为如果没有某种方法来读取/分析收集的数据,评测真的没有太大帮助。还有其他SaaS公司的服务中包含XHProf兼容/衍生GUI,可以使用,但捆绑XHGui对那些希望在不需要太多额外配置的情况下启动和运行的人来说将是一个很大的帮助。

如果我们这样做,我认为需要修改docker配置以创建两个新容器:一个用于XHGui应用程序,另一个用于它需要的MongoDB后端。XHGui回购包括docker-compose.yml公司文件,该文件可以用作设置的一部分,但我可能需要一些关于如何在wp-env公司包裹。

@诺亚塔伦
复制链接
成员

更新docker合成文件应该相对容易。它也是在JS中生成的,所以基本上可以复制粘贴链接到的docker-compose文件env/lib/build-docker-compose-config.js,并根据XHProf配置标志有条件地启用它

@贾斯特莱文
复制链接

恰斯特莱文 评论2023年6月21日

这个PR的目标是仅仅为本地用户提供工具,以便在XHGui中手动测试和审查,还是在diff中也有一些我刚刚忘记的CI或本地排序/报告形式?

@乔麦吉尔
复制链接
成员 作者

@恰斯特莱文这最初只是为了在wp-env公司环境,以便人们可以轻松使用工具。我计划修改它,为XHGui添加容器,以便用户可以在本地查看收集的数据,但我还没有机会回到它。

当然可以在CI环境中使用此工具,但这不是本特定PR的目标。

免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
标签
项目
还没有
开发

成功合并此请求可能会解决这些问题。

还没有

3名参与者