No and no.
What helps what in what case?
Android maintains the Dalvik cache properly all by itself. It doesn't need your help or an app's help.
Clearing out app cache helps maintain free storage, because some apps don't keep their caches clean, do garbge collection, etc. (It's possible to produce an Android app without knowing the first thing about programming. It won't be a very good app, but thousands of people make good money doing it.)
Settings/General/Storage. Wait until it finishes calculating, then tap Cache. It'll ask you if you want to clear the cache. You do. (That also seems to clear out system cache, but you can boot to recovery if your phone has a recovery - some don't - and clear system cache if you want to be a purist.)
And if you're running Android version 5.0, 5.0.1 or 5.0.2, restart the phone if it starts getting sluggish, or once a week if you think about it. There's a memory leak and, depending on how you use the phone, you could be squeezing the apps to run in less and less memory until finally it gets bad enough to notice. Restarting the phone (or turning it off, if you do that every night) fixes that, because the leak affects transient memory, which gets redone on every start or restart. (Yes, all you system developers out there, I know that's a terrible explanation, but it's one a non-technical person can understand. "Reallocation of new RAM for the same variable" is as much gibberish to them as "uninitialized pointer" - which I've seen all too many times, written by experienced programmers.)