link0/profiler 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

link0/profiler

Composer 安装命令:

composer require link0/profiler

包简介

A profiling library for PHP using XHProf or uprofiler and providing multiple persistance layers

README 文档

README

Latest Stable Version Total Downloads License Scrutinizer Code Quality Code Coverage Build Status

Link0/Profiler as a layer over XHProf profiling, and persisting profiles for later analysis.

The code is quite new, so please report any bugs if you encounter them, even though unit-tests should cover 100% of the code.

All ideas are welcome, and contributors as well.

SensioLabsInsight

Requirements

  • PHP 5.4 is required but using the latest version of PHP is highly recommended
  • XHProf or Uprofiler is required to do actual profiling

Installation

To add Link0/Profiler as a local, per-project dependency to your project, simply require the dependency link0/profiler with composer.

composer require "link0/profiler" "~1.0"

There is also a Symfony2 bundle available, see Link0/ProfilerBundle. To install it, use the following composer package

composer require "link0/profiler-bundle" "~1.0"

To install XHProf on your machine

pecl install -f xhprof

or

apt-get install php5-xhprof

or

# If you have the josegonzalez/homebrew-php formulae tapped, install them with brew.
# Change your version accordingly
brew install php55-xhprof

Quick setup with XHGui

To get started with this profiler package and XHGui, setup XHGui to listen to your MongoDB instance.

From every project that you want to profile, and aggregate the results to the centralized server, setup the following config:

    $connectionAddress = 'mongodb://mongodb.example.com:27017';
    $mongoClient = new \Link0\Profiler\PersistenceHandler\MongoDbHandler\MongoClient($connectionAddress);
    $persistenceHandler = new \Link0\Profiler\PersistenceHandler\MongoDbHandler($mongoClient);
    $profiler = new \Link0\Profiler\Profiler($persistenceHandler);
    $profiler->start();

More in-depth

The library is all about the Profiler, you want to instantiate that and let it do it's magic

$profiler = new \Link0\Profiler\Profiler();
$profiler->start();
print_r($profiler->stop());

If you want to start profiling using a browser based tool like XHProf Helper, You can use this method

$profiler = new \Link0\Profiler\Profiler();
$profiler->startOn(@$_COOKIE['_profiler']);
// or
$profiler->startOn(@$_COOKIE['XHProf_Profile']);

If you want to store the results, you can pass a PersistenceHandler object to the Profiler

$persistenceHandler = new \Link0\Profiler\PersistenceHandler\MemoryHandler();
$profiler = new \Link0\Profiler\Profiler($persistenceHandler);

This way, the results are stored in memory, may not be that convienient, but can be nice to play around with.

There is also an implementation to store profiles on the filesystem, using the Flysystem library.

$filesystemAdapter = new \League\Flysystem\Adapter\Local('/tmp/profiler');
$filesystem = new \League\Flysystem\Filesystem($filesystemAdapter);
$persistenceHandler = new \Link0\Profiler\PersistenceHandler\FilesystemHandler($filesystem);
$profiler = new \Link0\Profiler\Profiler($persistenceHandler);

统计信息

  • 总下载量: 89
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 14
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 14
  • Watchers: 3
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-09-23

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固