I've used 60+ different cleaning apps, and typically there's not much difference in the cleaning abilities of different apps. I've only found a few which stand out.
Power Clean, and
MAX Optimizer (it's called Super Speed,Clean,Security-MAX in the Play Store), both find a lot of junk to clean, and MAX Optimizer includes an antivirus.
SD Maid, which has been mentioned already is also good. It cleans more junk if your device is rooted. I have the Pro version, and you can see the differences between the free and paid pro versions
here.
Root Cleaner, is also very good. But, it's a paid apd and can only be used on rooted devices.
I've tried CCleaner, but the Android version is very unremarkable in my opinion and the apps I've mentioned above all will find more junk to clean. In my opinion it's not worth using.
If there is plenty of space free on your Android device, there's often not much point in cleanning junk. However, if it's running out of storage space, then cleaners can help improve performance and free up space. Personally, I run cleaning software regularly as there's not much free space on my device and I often don't have enough space to install new apps or app updates from the Play Store. Usually, I can free up enough space by using cleaning apps.