Presented on September 18, 2015
Part of the meeting: Debugging Beyond var_dump()
Package includes the following talks.
PHP Profiling, an Introduction
During this session, we will talk about inclusive and exclusive costs, wall time, cpu time, memory, callers, callees, callgraphs, aggregations, comparisons, and then some more. You will learn what profiling is and why it should become part of your daily arsenal. After the theoretical basis of performance analyzes, we will look at the corresponding tools: Xdebug, XHProf, and Blackfire. We’ll then see how profiling is not only about performance: when you don’t know the inner of an application, looking at call graphs is like seeing through your app – it’s a lens on how its internals work. Can you imagine a doctor doing surgery without medical imagery? That’s what profiling is for a developer. You shouldn’t miss it out.
Debugging: Past, Present and Future
In this talk I will go over all the past, present and future debugging techniques. The talk start by giving an overview on PHP’s (ancient) standard features for debugging, additional (userland) libraries and functionality in frameworks.
After the introductions we move on to the meatier stuff and I will talk about live-action debuggers, such as Xdebug and Zend’s debugger. They both provide information while a script is being executed, in combination with IDEs.
In the future, there is PHP 5.6’s phpdbg which allows for some debugging and other analysis. I am also unveiling a project that allows you to “step back” while debugging as well; introspect what your script’s or application’s exact execution paths was; and trace variable modifications.
Characterization Testing for Legacy Applications
Paul M. Jones
Debugging and testing go hand-in-hand. But how can you write unit tests for a legacy application? Most of the time, there *are* no “units” in a legacy application. Everything is tied to everything else, so testing anything in isolation is impossible. However, you don’t have to use *unit* testing to discover bugs when you make changes. You can use *characterization* testing instead. In this presentation, Paul will talk about what characterization testing is, how to apply it, and how it can help you to manage and maintain legacy applications, especially while refactoring and modernizing.
Modern Tools for API Debugging and Testing
When it comes to software testing, rigorous methodologies, frameworks and tools exist for unit, integration and functional tests. But when it comes to testing and debugging RESTful web service API integrations, where the API and apps are completely independent, we typically just cross our fingers and hope for the best. However, a new generation of API debugging and testing tools are on the rise, helping architects and developers on every side of the platform. Neil Mansilla will present the latest in API debugging and testing tools that are helping companies to deliver rock-solid, high performance APIs to their community.
Don’t Reboot, Debug!
Nothing is showing up in the logs, everything works just fine on your development and acceptance environment, your unit-tests are all green and yet you’ve got major issues on your production server. What to do? Restart your web service? Reboot the system? Maybe we even add more hardware, just in case? Hell no! We debug it Chuck Norris style! During this talk I will show you how you can use some of the more advanced (linux) tools like strace, iostat and even gdb and dtrace to figure out quickly the bottlenecks in your Linux environment.