heyday / silverstripe-xhprof
此软件包的官方仓库似乎已不存在,因此已将其冻结。
Requires
- composer/installers: 1.0.0
This package is auto-updated.
Last update: 2024-04-29 02:50:58 UTC
README
#Heyday xhprof
本模块提供了一个针对 SilverStripe 的 pecl 包 xhprof 以及 xhprof gui 的封装。
对于与 SilverStripe 2.4
兼容的版本,请查看 1.0
分支。
##许可证
本项目采用 MIT 许可协议,可在 silverstripe-xhprof/LICENSE
找到。
##要求
要使用 silverstripe-xhprof
,您需要在 php 中安装 xhprof。要创建通过 xhprof gui
的调用图,您还需要 Graphviz。
##安装
要将 silverstripe-xhprof
目录放入您的 SilverStripe 根目录中,然后运行 /dev/build?flush=1
。
##使用方法
您可以使用两种方式使用 silverstripe-xhprof
。作为全局分析器或作为特定代码段的分析器。请注意,您不能在同一请求中进行全局分析和局部分析。
###全局分析
####使用 Sake
启用
./sake xhprof/enable
禁用
./sake xhprof/disable
####不使用 sake(您需要拥有管理员权限)
启用
https:///xhprof/enable
禁用
https:///xhprof/disable
启用全局分析时,将编辑您的 .htaccess
文件,并在开头添加两行代码,但 silverstripe-xhprof
会备份您的 .htaccess
文件,该文件可在 silverstripe-xhprof/code/GlobalProfile/backup/
中找到。
当您禁用全局分析时,您的 .htaccess
文件将从备份中恢复。
###局部分析
要分析特定的代码段,您需要首先确保全局分析已禁用,然后设置必要的 HeydayXhprof::start()
和 HeydayXhprof::end()
调用。
<?php HeydayXhprof::start('Potentially Troublesome Code'); //Code to profile HeydayXhprof::end();
##查看已保存的分析
对于每个创建的分析,都会创建一个相应的数据库记录(HeydayXhprofRun
)。这些数据库记录存储有关执行分析请求的信息(url、查询字符串等),以及分析标识符。
要查看已保存的分析,请转到
https:///admin/xhprof/
所有全局分析都保存在 Global
的 App
名称下。
##配置
在分析时,有几个配置选项可用。全局配置选项可以在位于以下位置的 php 文件中设置:
./mysite/_config_xhprof.php
当启用全局分析时,如果存在此文件,则在其包含任何 SilverStripe
代码之前包含此文件。
###按概率限制全局分析
要限制要分析请求,您可以使用概率。这在负载下在实时服务器上分析时很有用。
<?php HeydayXhprof::setProbability(2/3);
此示例将创建分析的几率设为 2/3
。
<?php HeydayXhprof::setProbability(1/1000);
此示例将创建分析的几率设为 1/1000
。
###按概率限制局部分析
<?php if (HeydayXhprof::testProbability(1/100)) { HeydayXhprof::start('Potentially Troublesome Code'); } //Code to profile if (HeydayXhprof::isStarted()) { HeydayXhprof::end(); }
###通过部分匹配(特别是 strpos)排除 URL
要排除某些 URL
<?php HeydayXhprof::addExclusions(array( '/admin/xhprof/', '/Security/ping' ));
##单元测试
如果您已安装 phpunit
,则可以运行 silverstripe-xhprof
的单元测试,以查看一切是否正常工作。
###运行单元测试
从命令行
./sake dev/tests/module/silverstripe-xhprof
从您的浏览器
https:///dev/tests/module/silverstripe-xhprof
## 贡献
### 代码规范
本项目遵循以下标准