3 Types of PHP Profilers and Why You Need All of Them

Ben Putano Developer Tips, Tricks & Resources

PHP is one of the most popular languages in the world, and some say it’s one of the easiest to learn. Still, even the best languages need some help. Profilers are just one of the many PHP tools in a large ecosystem, but they are one of the most valuable. Developers of all levels benefit from using a tool that helps them find bugs and fix performance issues.

What some developers don’t know is that there are multiple types of profilers, each with its own unique set of advantages and disadvantages.

  • Standard profilers
  • Tracing profilers
  • Application performance monitoring (APM) tools

We’ll go through each type of profiler and share examples, pros, and cons for PHP developers.

Standard PHP profilers

Standard profilers are the most common type of profiler, but also the type you might use the least. In other words, everyone has used a standard profiler, but you might only pull it out a few times a year.

If you’re having a major problem with your application, standard profilers can help you get to the bottom of it. Standard profilers periodically record stack traces of their application. These samples give you a snapshot of important metrics like CPU, memory usage, time spent per line of code, and frequency of method calls.

Pros

  • Standard profilers help you track down memory leaks and performance issues that are leading to high memory usage. If memory usage is a problem, standard profilers are the solution.
  • Identify the causes of high CPU usage and optimize app performance to work within a normal CPU level. Standard profilers are perfect for this type of performance tuning.
  • Xdebug produces cachegrind files, which are reports on the performance of application calls. However, these reports can only be read with a Call Graph Viewer like kcachegrind.

Cons

  • Application snapshots are only taken periodically and might not capture the full picture of the problem. Standard profilers don’t run continuously.
  • Standard profilers are resource-intensive and slow developers down. They are not lightweight, which means they need a full-stop on development before running.
  • Like mentioned above, some standard profilers like Xdebug require the use of other tools to analyze the profiler data. This also slows down the time-to-insight for developers.

Stackify Loves Developers

Tracing profilers

Tracing profilers are lighter weight than standard profiles and can be used while you code. Unlike standard profilers, you can use tracing profilers everyday and they won’t slow you down. They’re designed to catch errors in real time while you’re developing, instead of catching errors after the fact. You can think of tracing profilers as your first line of defense in your war on bugs.

Pros

  • Tracing profilers can be used every day to catch errors while they happen. They allow developers to debug in any environment, even production.
  • Allows developers to trace PHP executing, function calls, and information requests during run-time.
  • Because they’re used while coding, tracing profilers help you identify errors quickly and easily. No need to stop development.
  • Many tracing profilers are completely free to use.

Cons

  • Tracing profilers offer limited insights, like identifying heavy-load problems and bugs. Prefix, for example, only monitors web request issues.
  • They cannot identify CPU or memory usage issues.
  • They do not provide full-stack performance monitoring like APMs.

Application performance monitoring (APM) tools

APM tools monitor your entire web stack throughout the development lifecycle. They give you basic server metrics like CPU and memory, as well as detailed, code-level insights on your application’s performance. Some APM tools also give you transaction tracing and logging metrics as well.

Unlike standard and tracing profilers, APMs do more than just identify code errors. They help you find inefficiencies and areas for improvement across your entire web stack. They are a crucial part of any PHP project.

Examples

Compare Retrace vs New Relic

Pros

  • APM tools provide the broadest and deepest level of profiling. They track server, database, logs, web requests, and code performance to help you identify the slowest parts of your stack.
  • They let you view your application from the customer’s point of view by tracking customer satisfaction, most popular web requests, and SQL query performances.
  • APMs run all the time so developers know exactly when performance issues arise.
  • After identifying high-level performance issues, APMs help you track down the problem with code-level tracing.

Cons

Choosing the right PHP profiler for you

Each of the 3 types of PHP profilers plays a unique role during development. Standard profilers are best for big performance issues like high CPU or memory usage. However, standard profilers are resource-heavy and time-intensive. They are not meant for everyday use.

Tracing profilers, on the other hand, are perfect for everyday use because they’re lightweight and can be used in conjunction with development. This is a PHP developer’s best friend because tracing profilers give you a second set of eyes on your code. But due to their small footprint, tracing profilers aren’t very powerful.

Application performance monitoring tools provide the most comprehensive picture of your application’s health. APMs help you identify the slowest parts of your stack and drill down to the code-level to fix them.

Developers need all three profilers to be successful. Each one is a tool for a different circumstance. Used together, PHP profilers help developers catch errors in real time, fix major computing issues, and monitor the health of their application day after day.

 

About Ben Putano

Ben is a writer and technology enthusiast based out of Kansas City, Missouri. His company, WeContent, helps technology companies build passionate audiences through irresistible content.
Improve Your Code with Retrace APM

Stackify’s APM tools are used by thousands of .NET, Java, and PHP developers all over the world.
Explore Retrace’s product features to learn more.