<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Sat, 18 May 2013 23:22:02 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Lorna Mitchell: Installing XHGui]]></title>
      <guid>http://www.phpdeveloper.org/news/19286</guid>
      <link>http://www.phpdeveloper.org/news/19286</link>
      <description><![CDATA[<p>
<i>Lorna Mitchell</i> has a new post today showing you how to <a href="http://www.lornajane.net/posts/2013/installing-xhgui">install XHGui</a> to help with profiling your application for performance and processing issues.
</p>
<blockquote>
If you're not familiar with XHGui it's a fabulously easy and friendly way to profile your application; to understand which method calls in a page take the time and how many times they are made, so you can improve the performance of your application. All these instructions are for my 32-bit Ubuntu 12.10 system, hopefully they will work for you or you'll be able to adapt them as appropriate.
</blockquote>
<p>
She lists the dependencies you'll need to have installed before you can get XHGui working correctly including a MongoDB instance and the <a href="http://pecl.php.net/package/xhprof">PECL xhprof</a> extension. With those all set to go, you can go grab the latest XHGui <a href="https://github.com/preinheimer/xhgui">from github</a> and drop it into place. 
</p>]]></description>
      <pubDate>Thu, 07 Mar 2013 12:15:01 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Paul Reinheimer: XHGui and MongoDB]]></title>
      <guid>http://www.phpdeveloper.org/news/18949</guid>
      <link>http://www.phpdeveloper.org/news/18949</link>
      <description><![CDATA[<p>
<i>Paul Reinhemier</i> has <a href="http://blog.preinheimer.com/index.php?/archives/403-XHGui-on-MongoDB.html">written up  post</a> sharing his creation of the code to get <a href="https://github.com/preinheimer/xhgui">XHGui working with MongoDB</a>.
</p>
<blockquote>
<a href="http://mark-story.com/posts/archive">Mark Story</a> & I are pleased as punch to introduce <a href="https://github.com/preinheimer/xhgui">XHGui on MongoDB</a>. Our goal was to get as close to the original feature set of the tool I worked on a few years ago (which leveraged the starting point provided by Facebook) and then to release what we had. What we've got now works; there's still a good distance to go, but we think it's far enough that we can ask for help form the community at large.
</blockquote>
<p>
The tool collects XHProf data and stores it into a MongoDB database and allows you to <a href="http://blog.preinheimer.com/uploads/runpage.png">view</a> <a href="http://blog.preinheimer.com/uploads/urlpage.png">recent</a> activity. There's a few warnings that he includes with the post, so be sure to read those through if you plan on using the tool.
</p>]]></description>
      <pubDate>Wed, 26 Dec 2012 10:02:01 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: The Need for Speed: Profiling with XHProf and XHGui]]></title>
      <guid>http://www.phpdeveloper.org/news/18435</guid>
      <link>http://www.phpdeveloper.org/news/18435</link>
      <description><![CDATA[<p>
On PHPMaster.com today <i>Matt Turland</i> has an article posted about <a href="http://phpmaster.com/the-need-for-speed-profiling-with-xhprof-and-xhgui/">using XHProf and XHGui</a> to find the performance issues in your application and profile them to help optimize things.
</p>
<blockquote>
Profiling is the process of measuring the execution time of each function or method call involved in servicing a single page request. The data collected from this process can reveal issues such as a particular method taking a long time to execute or being called a large number of times. Profiling a PHP script generally requires installing a PHP extension. The two more popular extensions for this purpose are <a href="http://derickrethans.nl/">Derick Rethans</a>' <a href="http://pecl.php.net/package/xdebug">Xdebug</a> and Facebook's <a href="http://pecl.php.net/package/xhprof">XHProf</a>. This article will focus on XHProf.
</blockquote>
<p>
He walks you through the installation of both and shows you some sample results of the profiling of a simple application and how you can compare the results across profiling runs. Additionally, if you install <a href="http://www.graphviz.org/">graphviz</a> support, you can <a href="http://cdn.phpmaster.com/files/2012/09/xhprof-03.png">generate the call stack output</a> in a visual form to make for easier consumption.
</p>]]></description>
      <pubDate>Mon, 03 Sep 2012 10:29:13 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Advanced CodeIgniter Profiling With XHProf]]></title>
      <guid>http://www.phpdeveloper.org/news/17836</guid>
      <link>http://www.phpdeveloper.org/news/17836</link>
      <description><![CDATA[<p>
On the NetTuts.com site today there's a new tutorial showing how to <a href="http://net.tutsplus.com/tutorials/php/advanced-codeigniter-profiling-with-xhprof/">use XHProf to profile CodeIgniter-based applications</a> and fidn the spots that are causing the most overhead/issues.
</p>
<blockquote>
<a href="https://github.com/facebook/xhprof">XHProf</a> will provide you with a hierarchical profile of the functions your application calls, allowing you to follow the chain of events that lead up to resource intensive code running. You'll be able to see exactly how much wall time (the actual time elapsed), CPU time and memory your application uses. This tutorial will help you get XHProf installed on your server, and integrated with your CodeIgniter application via hooks so that you can start profiling your application, in a production environment, straight away. Everything you see here was written for Ubuntu 10.04 - the latest LTS release at the time of writing.
</blockquote>
<p>
They walk you through the installation of the tool (via a wget of the source), show you how to integrate it with CodeIgniter via hooks and include a simple class that is called to execute and report on the findings. Some sample output is included as well as some general tips on interpreting the results.
</p>]]></description>
      <pubDate>Wed, 18 Apr 2012 13:12:18 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Kurt Payne's Blog: User register_tick_function to profile your code]]></title>
      <guid>http://www.phpdeveloper.org/news/17512</guid>
      <link>http://www.phpdeveloper.org/news/17512</link>
      <description><![CDATA[<p>
<i>Kurt Payne</i> has a new post to his blog showing how to <a href="http://kpayne.me/2012/02/04/use-register_tick_function-to-profile-your-code/">use register_tick_function</a> with a callback to help benchmark and profile your application to find its pain spots.
</p>
<blockquote>
A profiler gives you the ability to trace the performance of your code through every function call and create an overview of your system's performance over a certain time period and helps you make intelligent decisions about where to look for problems. [...] But what if you're in an environment where you can't install [the xdebug or xhprof] extension? Luckily, php has a built-in function called <a href="http://php.net/register_tick_function">register_tick_function</a> that gives you a way to hook in to every user function that's called.  With this, you can write a profiler yourself.
</blockquote>
<p>
A bit of sample code illustrates his method - it defines a "do_profile" function and assigns it with the <a href="http://php.net/register_tick_function">register_tick_function</a> call. This function generates a debug backtrace and echos out the function path it took to get to that spot (output is included). He provides code for a bit more useful profiling and points out that it could easily be graphed to help visualize the problems. Also included are a few caveats to watch out for when using this method of profiling.
</p>]]></description>
      <pubDate>Tue, 07 Feb 2012 13:26:23 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Speed Up Your PHP Like Facebook]]></title>
      <guid>http://www.phpdeveloper.org/news/17182</guid>
      <link>http://www.phpdeveloper.org/news/17182</link>
      <description><![CDATA[<p>
On DZone.com <i>John Esposito</i> <a href="http://css.dzone.com/articles/speed-your-php-facebook">reminds you</a> about another technology Facebook has introduced to the world of PHP (besides HipHop) - <a href="https://github.com/facebook/xhprof">XHProf</a>, a PHP profiler.
</p>
<blockquote>
Facebook did more for PHP: they also created XHProf, a PHP profiler with a (supposedly) easy-to-use HTML interface, designed to pinpoint exactly where your bottlenecks are appearing, so that you can optimize at every stage in the pipeline. [...] If you haven't tried XHProf, you might want to <a href="https://github.com/facebook/xhprof">look into it</a>. Installation apparently requires a little nudging, but Nick Lewis just posted a <a href="http://nicklewis.org/node/1087">full, practical guide</a> to benchmarking and performance tuning your PHP and MySQL, using XHProf (as well as other techniques) -- a very nice overview of many common bottlenecks and how to open them up.
</blockquote>
<p>
There's also a link to some <a href="http://groups.drupal.org/node/187209">Drupal 6 benchmarks</a> that shows how it has helped that project (including both small and large improvements).
</p>]]></description>
      <pubDate>Tue, 29 Nov 2011 10:13:03 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Profiling a PHP Application]]></title>
      <guid>http://www.phpdeveloper.org/news/16212</guid>
      <link>http://www.phpdeveloper.org/news/16212</link>
      <description><![CDATA[<p>
On DZone.com's Web Builder Zone today there's a new post from <i>Eric Hogue</i> talking about some of the tools you can use to <a href="http://css.dzone.com/news/profiling-php-application">profile your PHP application</a> and squeeze that much more performance out of it (or maybe just find that pesky, elusive bug).
</p>
<blockquote>
When developing web applications, we often run into performance issues. People often blame PHP or MySQL for bad performance, but in most case the answer is not that easy. Blindly trying to optimize random parts of our applications can lead to some uneven results. There are many available tools to profile a PHP application. Learning how to use them can help us pinpoint which parts are slow. With this information we can pick the optimizations that will give us the best results.
</blockquote>
<p>The helpful tools he mentions include:</p>
<ul>
<li><a href="http://www.joedog.org/index/siege-home">Siege</a> (benchmarking)
<li><a href="http://www.xdebug.org/">Xdebug</a>
<li><a href="http://pecl.php.net/package/xhprof">XHProf</a>
<li>XHGui
</ul>]]></description>
      <pubDate>Mon, 18 Apr 2011 11:09:33 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Paul Reinheimer's Blog: XHGui Improvements]]></title>
      <guid>http://www.phpdeveloper.org/news/14652</guid>
      <link>http://www.phpdeveloper.org/news/14652</link>
      <description><![CDATA[<p>
<i>Paul Reinheimer</i> has <a href="http://blog.preinheimer.com/index.php?/archives/358-XHGui-Improvements.html">posted about some updates</a> to a profiler project he's been working on, <a href="http://github.com/preinheimer/xhprof">XHProf</a>, with some new GUI improvements thanks to <a href="http://highcharts.com/">Highcharts</a>. XHProf is a function-level hierarchical profiler for PHP and has a simple HTML based user interface.
</p>
<blockquote>
I merged my Highcharts branch into master today, including a bunch of improvements to the GUI for XHProf including: using Highcharts for graphing URLs over time, which allows for multiple axis per graph, adding a pie chart to the individual run page to show where time was spent on page load, ability to merge various calls for display within the pie chart (e.g. mysql_* into mysql), switched to the javascript tablesorter for the single run results, filter to allow you to view results only from a specific server or domain
</blockquote>
<p>
You can see two screenshots of this new feature in action <a href="http://blog.preinheimer.com/uploads/highchart2.png">here</a> and <a href="http://blog.preinheimer.com/uploads/2010-06-14_1115.png">here</a>. If you'd like to give the tool a try, you can grab the latest version <a href="http://github.com/preinheimer/xhprof">from github</a>.
</p>]]></description>
      <pubDate>Tue, 15 Jun 2010 11:03:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Paul Reinheimer's Blog: A GUI for XHProf]]></title>
      <guid>http://www.phpdeveloper.org/news/14417</guid>
      <link>http://www.phpdeveloper.org/news/14417</link>
      <description><![CDATA[<p>
<i>Paul Reinheimer</i> has posted about a new <a href="http://blog.preinheimer.com/index.php?/archives/355-A-GUI-for-XHProf.html">GUI frontend he's developed</a> to sit on top of the <a href="http://github.com/facebook/xhprof">XHProf profiling tool</a> and has made available <a href="http://github.com/preinheimer/xhprof">on github</a>.
</p>
<blockquote>
Facebook was kind enough to open source the XHProf extension last year, but it flew under my radar until I saw a presentation including it earlier this year when they showed off HipHop. XHProf provides profiling information about your application, while being lightweight enough to run on a production server (against a percentage of requests). Once we got it installed we ran into a few limitations with the existing GUI.
</blockquote>
<p>
His deadlines were tight, so he admits the code isn't as robust as it could be, but he does offer a tool that uses MySQL for data storage, keeps stats on things like peak memory usage and wall time and uses the Google Data Visualization API to run graphs of the data over time. You can see a few screenshots of the tool in action in the post including <a href="http://blog.preinheimer.com/uploads/2010-04-26_1443.png">this sample graph</a> and <a href="http://blog.preinheimer.com/uploads/2010-04-26_1447.png">this comparison</a> of two different runs against the same resources.
</p>
<p>
The project is available for download/contribution <a href="http://github.com/preinheimer/xhprof">on github</a>.
</p>]]></description>
      <pubDate>Tue, 27 Apr 2010 09:15:05 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[IBuildings techPortal: Profiling with XHProf]]></title>
      <guid>http://www.phpdeveloper.org/news/13616</guid>
      <link>http://www.phpdeveloper.org/news/13616</link>
      <description><![CDATA[<p>
On the IBuildings techPortal site today there's <a href="http://techportal.ibuildings.com/2009/12/01/profiling-with-xhprof/">a new article</a> (written up by <i>Lorenz Alberton</i>) about using the <a href="http://mirror.facebook.net/facebook/xhprof/doc.html">XHProf</a> profiling tool as an alternative to the feature used in another popular PHP-related too <a href="http://xdebug.org/">Xdebug</a>.
</p>
<blockquote>
In this article, we're going to try another profiler, <a href="http://mirror.facebook.net/facebook/xhprof/doc.html">XHProf</a>, developed at Facebook and open sourced in March 2009 (under the Apache 2.0 license). XHProf is a function-level hierarchical profiler, with a PHP extension (written in C) to collect the raw data, and a few PHP scripts for the reporting/UI layer.
</blockquote>
<p>
He walks you through the install (either via packages or, if it complains, via the usual PECL build process) and the functions you'd need to profile a chunk of code, an entire page and how to use the UI and reporting output to help define where the real problems are in your code.
</p>]]></description>
      <pubDate>Wed, 02 Dec 2009 11:47:18 -0600</pubDate>
    </item>
  </channel>
</rss>
