You need to establish baseline. As long as your app works fine under desired load (number of request/sec, num of online users, etc), any cpu/memory consumption will do, more or less. Once you have baseline, you can add features to your code and then check if features make consumption decrease or increase and act accordingly. Then, if needed, you will optimize places in code which worsened after features were added (or you discover that no local code change saves you, and you need more hw to support new features under given load, or you need to re-design some components of your app, but it's another story).
So, it's not an absolute value that matter most (although having JVM heap consumption constantly at 95% is a bit worrying), but a change between code changes.