PSP profiling: reinforcing homebrew with performance engineering
Now that we’ve reached a sense of maturity with homebrew development on the Sony PlayStation Portable, perhaps its time to trim the edges a bit. With the specifications of the PSP line diversifying (PSP Slim & Lite, PSP Fat) and the applications stretching across so many different segments at once, don’t you think it’s about time we started to document the PSP’s capabilities the way real software developers do? More on that at the full article.
QJ.NET Forums member zytek (Jakub Glazik) recently submitted a self-published tutorial which advocates the idea of profiling software on the Sony PlayStation Portable. The document, entitled “Performance analysis on Playstation Portable”, covers principles of measuring the performance of the PSP at its raw form.
It also mentions ways to profile applications to show how efficient and optimized they are from a technical standpoint. But let’s break it down to something other than computer engineering speak.
Profiling will essentially test your own applications on their intended platform using a controlled environment (much like platform testing). You could do this to a point such that you can derive an idea of what the software does behind the scenes – if at a hardware-software interaction and operation point of view only. Yeah, we know, why bother right?
Well, it’s not because your – and my – software engineering professor advises us that it’s critical to do if we’re to pass. It’s because to ensure optimal code execution, you’ve got to make sure that the two essential gears – the software and the hardware – cranking the PSP experience (that you’re obviously trying to make perfect) fit each other perfectly. You’d be looking for that sweet spot: fast and error-free code.
Now the developer can tell how the coded application would run at a user’s point of view (GUI, interactivity, response, etc.) from repetitive test runs and beta testing, but when it comes down to the PSP’s point of view, he’ll need some help. A profiling agent fits the prescription just nicely.
A profiler picks up the performance engineering tasks “menially” – in a sense that it will run alongside the application being executed “hands-on” – and create detailed reports on the operation of executed code. It will even be able to alter certain execution parameters, such as the app’s bytecodes, should you deem such changes as part of the test protocol.
As you can create your own profilers for your applications, other developers will have more than just a general idea of how code works on the PSP. Profiling creates profiles of apps, or call graphs, so each program will be fundamentally unique in one way or another. Many things can be derived from the reports and such information can be made more useful to the slew of other developers out there.
Jakub Glazik’s tutorial carries the primers: the how-tos and whys, as well as a base platform for other unique profiling cases for unique applications. But should you need more help, you’ll need to consult external resources – GproF documentation and usage, for instance – to prepare your own custom-fitted profiling agent. Visit the thread for the document.