cristiansitov / xhprof-bundle
由Jonas Wouters创建的Symfony JnsXhprofBundle;由Cristian Sitov进行适配
Requires
- php: >=5.3.2
This package is not auto-updated.
Last update: 2024-09-22 04:33:47 UTC
README
什么是XHProf?
XHProf是PHP的分层分析器。它报告函数级别的调用次数和包含与排除指标,如墙(耗时)时间、CPU时间和内存使用情况。函数的配置可以按调用者或被调用者分解。原始数据收集组件是用C语言实现的PHP Zend扩展,称为xhprof。XHProf有一个简单的基于HTML的用户界面(用PHP编写)。基于浏览器的UI用于查看分析结果,使其易于查看结果或与同行分享结果。还支持调用图视图。
见官方文档
此Symfony 2 Bundle做什么?
此bundle帮助您轻松地在Symfony 2中使用XHProf bundle和Web调试工具栏。
安装
确保您已安装XHProf。如果您使用Mac,可以通过Macports轻松安装它:sudo port install php5-xhprof
获取bundle
要安装bundle,将其放置在项目中的src/Jns/Bundle
目录(因此它位于src/Jns/Bundle/XhprofBundle
)。您可以通过将bundle作为子模块添加、克隆它或简单地下载源代码来完成此操作。
git submodule add https://github.com/jonaswouters/XhprofBundle.git src/Jns/Bundle/XhprofBundle
将Jns命名空间添加到自动加载器
如果这是您Symfony 2项目中的第一个Jns bundle,则需要将Jns
命名空间添加到自动加载器。此文件通常位于app/autoload.php
。
$loader->registerNamespaces(array(
'Jns' => __DIR__.'/../src'
// ...
));
初始化bundle
要初始化bundle,您需要将其添加到您的kernel。此文件通常位于app/AppKernel.php
。建议仅在开发环境中加载它。
public function registerBundles()
{
// ...
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
// ...
$bundles[] = new Jns\Bundle\XhprofBundle\JnsXhprofBundle();
}
)
配置XHProf位置。
该Bundle默认配置为macports php5-xhprof默认安装,其中xhprof Web位于http://xhprof.localhost。要更改这些设置以适应您的环境,您可以在配置中定义以下设置,通常位于app/config/config.yml
。
jns_xhprof:
location_lib: /opt/local/www/php5-xhprof/xhprof_lib/utils/xhprof_lib.php
location_runs: /opt/local/www/php5-xhprof/xhprof_lib/utils/xhprof_runs.php
location_config: /opt/local/www/php5-xhprof/xhprof_lib/config.php
location_web: http://xhprof.localhost
enabled: true
使用XHGui
XHGui是XHProf PHP扩展的GUI,使用数据库后端和精美的图形,使其易于使用和解释。XHProf bundle支持使用XHGui显示结果。要使用,安装XHGui,并在配置中添加以下两个设置,通常位于app/config/config.yml
jns_xhprof:
entity_manager: <name_of_entity_manager> (defaults to default)
enable_xhgui: true
如果您已定义了一个实体管理器,则无需在此处设置。此设置用于您使用单独的XHGui分析数据库的情况(强烈推荐)。
指定样本大小
您可以指定用于分析的样本大小。对于请求量大的生产环境,强烈建议指定样本大小。样本大小设置为分析的概率,例如,如果您将样本大小设置为2,则平均每两个请求就会进行分析。当然,在生产环境中,您想将其设置得更高。默认值为1,因此每个请求都会进行分析。
jns_xhprof:
sample_size: 2