Giter Site home page Giter Site logo

idea99 / xhprof Goto Github PK

View Code? Open in Web Editor NEW

This project forked from preinheimer/xhprof

0.0 3.0 0.0 1.42 MB

XHGUI is a GUI for the XHProf PHP extension, using a database backend, and pretty graphs to make it easy to use and interpret.

License: Other

M4 0.07% C 21.70% PHP 54.72% CSS 3.97% HTML 19.55%

xhprof's Introduction

XHProf UI

This is a graphical front end designed to store and present the profiling information provided by the Facebook created XHProf profiling tool.

Related Tools

  • XHGui - Uses MongoDB as a backend (rather than MySQL)

Project Includes

  • It includes a header.php document you can use with PHP's auto_prepend_file directive. It sets up profiling by initilizing a few variables, and settting register_shutdown_function with the footer. Once started profiles are done when requested (?_profile=1), or randomly. Profiled pages display a link to their profile results at the bottom of the page (this can be disabled on a blacklist based for specific documents. e.g. pages generating XML, images, etc.).
  • For tips on including header.php on an nginx + php-fpm install take a look at: http://www.justincarmony.com/blog/2012/04/23/php-fpm-nginx-php_value-and-multiple-values/
  • The GUI is a bit prettier (Thanks to Graham Slater)
  • It uses a MySQL backend, the database schema is stored in xhprof_runs.php
  • There's a frontend to view different runs, compare runs to the same url, etc.

Key Features

  • Listing 25, 50 most recent runs
  • Display most expensive (cpu), longest running, or highest memory usage runs for the day
  • It introduces the concept of "Similar" URLs. Consider:
  • Highcharts is used to graph stats over requests for an easy heads up display.

Requirements

Besides a simple PHP running on your favourite web server you will also need following packages:

  • php5-xhprof
  • php5-mysql
  • graphviz (uses dot to generate callgraphs)

Installation

  • Install your favourite mix of PHP and web server
  • Install MySQL server
  • Clone the project to some folder
  • Map the sub folder xhprof_html to be accessible over HTTP
  • Move xhprof_lib/config.sample.php to xhprof_lib/config.php
  • Edit xhprof_lib/config.php
  • Update the SQL server configuration
  • Update the URL of the service (should point to xhprof_html over HTTP)
  • Update the dot_binary configuration - otherwise no call graphs!
  • Update the controlIPs variable to enable access.
  • For a development machine you can set this to false to disable IP checks.
  • Import the DB schema (it is just 1 table)
  • See the SQL at xhprof_runs.php
  • Add a PHP configuration to enable the profiling
  • If using Apache you can edit your virtual host configuration
  • Add php_admin_value auto_prepend_file "/path/to/xhprof/external/header.php"
  • Visit http://your-server/xhprof/xhprof_html/ and be amazed!
  • To get profiler information showing up there visit your page with a GET variable _profile=1.
  • For example http://localhost/?_profile=1

We Are Working On

  • The aggregation functionality is ignored completely
  • The code is... a mess. Deadlines do that to you, we're working on it
  • The default table schema isn't indexed all the places it needs to be
  • Easier ways to diff URLs

xhprof's People

Contributors

beberlei avatar bertrandmalet avatar christiaan avatar chrono avatar dshafik avatar fragote avatar gametaunt avatar gromnan avatar helgi avatar hjr3 avatar jails avatar jwpage avatar markviafoura avatar mcarriere avatar mfonda avatar mgdm avatar odoucet avatar phpgangsta avatar preinheimer avatar pvolyntsev avatar ritmas avatar russelldavis avatar scoates avatar sebastianbergmann avatar smalyshev avatar spk avatar tperalta82 avatar tstarling avatar willmacdonald avatar xiian avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.