This depends on the frameworks that you use. If you are using CDI you could use a standard interceptor for this job. With Spring you could use the AOP module for something similar.
You could also implement a JSF PhaseListener and use it to log the execution time of individual JSF phases. That’s what I always do to get a general impression on the overall performance behavior of my application.
Do you play Magic?
Get TopDecked MTG, the #1 Magic App, built by players, for players. Free to use, forever.