You don’t even need serverside debuggers or fancy instrumentation to achieve this. The function microtime() returns a timestamp in microseconds. This makes it easy for you to check the passage of time at key points during your application’s execution path.
Yes, that's just as good as a real profiler.