While Guice AOP is a nice and cool feature and I love to use it for certain use cases I also found that it becomes a performance issue if used to heavely.
Because of this and the limitations you mention in your question I recommend using a classic profiler to investigate performance issues. For a list of populare ones see
https://zeroturnaround.com/rebellabs/top-5-java-profilers-revealed-real-world-data-with-visualvm-jprofiler-java-mission-control-yourkit-and-custom-tooling/
Also let me add the following advice:
- keep your modules dumb. Having little to none logic in your guice modules is the way to go. This increases performanc and also helps to reason about what is happening when in your application.
- singeltons are by far the fastest objects to inject. Try to make your dependencies state less and immutable. Then you can turn them into singeltons making them fast to inject.
Good luck. Performance issues can be very hard to track down. But sometimes if you found the bottleneck a small change can make a big difference.