planetsim, you're talking about print_r instead of printf?
to my understanding, print_r is useful to output arrays and object in a human-readable way. printf and sprintf are used for formatting output.
sometimes you'd need the latter for tasks that cannot easily be done with echo, sometimes you may use echo just as well.
with respect to performance comparison, maybe someone else who is around knows, or you could do some benchmarking tests yourself.