Anyway,: If you want to use a MIUI (preferably GLOBAL, I will explain later why this is the case); the first thing I recommend in addition to a backup (just in case), it's a pretty safe Debloat using the complete Saki tool:
After giving our device a nice cleanup from Bloatware (obviously you choose which ones to remove or not, personally I removed almost all of them leaving only Gallery, Phone and Messages without any problem), the best part comes, and that is to apply all the settings for a better user experience in every aspect. The MIUI is obviously not optimized as a custom ROM, so we should do it ourselves. Personally I am a root user, so first of all I flashed Evira Kernel and Magisk (with which I am wonderfully) and put modules that I personally recommend: LKT (or others similar modules), Syconfig Patcher (they are the ones that interest us), but of course the appearance rooting is optional.
But back to optimization; for each application that we will install, we will have to configure its type of activity in the background based on how much you want the app to act in the background. For example, the "MIUI Calculator" app, which I almost never use, will have set "limit app functions", otherwise applications that we will use more often will suffice "MIUI optimization", such as "Youtube", and what more important, for apps for which notification is essential (such as Whatsapp or Gmail), remove the limitations.
But it's not over. Write in the settings menu "change system settings", then a list will open with all the apps we have installed. Clicking on one of them, a menu will open, where clicking on "battery and performance", we will choose whether to put the limitations in the background or not, same speech as before, limit everything that is not necessary, inverse speech obviously goes for app important to us (gmail whats etc), which we will leave free to act in the background.
Still in the "battery and performance" menu, click on "battery optimization" and optimize everything you can, except as usual, the apps you don't want to be limited as in the previous two steps.
Now we can activate the "Battery saving" mode, which will obviously work on the whole system, except for all the apps that we have NOT optimized before. They will absolutely not be touched. (A nice break of *** optimize the MIUI , Doh!)
Remember that at the beginning of the guide I told you "better to focus on the global rather than the ROM developer?" well, using a third-party tool like Kernel auditor (personally I use EX Kernel Manager with which I am wonderfully), in the dashboard the developer rom had higher CPU peaks than the Global.Il that involved higher consumption. And it is a tool like this "Ex Kernel Manager etc" that we will now configure.
Step 1 Configure the Governor.
The mode and the speed with which the processor passes from the maximum frequency to the minimum one is regulated by the so-called * "Governor"
There are more than 100 different types of Governor for kernel, more or less different; but not all Governors are present in the Kernels. In case you are using Evira Kernel, my advice is to set the CPU to the "Alucardsched" Governor which offers an excellent compromise between performance and battery life.
EDIT: Recently tested zzmove gov with Evira Kernel: little performance is lost compared to alucardsched, but the battery benefits. Personally i have chosen profile 3 (ybatex).
Step 2 I / O scheduler
It is precisely a program in the form of an algorithm which, given a set of requests for access to a resource, establishes a temporal order for the execution of such requests, privileging those that respect certain parameters, so as to optimize the access to this resource and thus allow the completion of the desired service / instruction or process. In this case, I recommend setting it to noop or Zen, for an approach closer to the battery.
In the GPU section, if you don't use particularly heavy games, (personally I play every now and then in clash royale and I don't have any kind of lag at all) you can also set up your own governor here, setting one like Powersave, but in any case this is completely subjective .
Once everything is set up, all that remains is to talk about the last aspect,
Originally introduced with Android Marshmallow, it allows applications and various activities in the background to "sleep" when the device is screen off. Of course over time it has been increasingly perfect, which is why: In a Stock MIUI you can afford to download Naptime, Servicely or Greenify if you want (personally I use Nap & Serv) to enhance Doze or hibernation as in the case of Greenify (excluding as always the apps we want to be in the whitelist).
IMPORTANT: different words must be made for Custom ROMs, which being already optimized, and having a definitely more effective Doze than the basic stock, DO NOT NEED third-party apps like Naptime or Greenify. In this case, even setting everything as the guide, notifications will not arrive when the screen is off, except when you unlock the device.
so as far as custom ROMs are concerned, you just need to limit the apps as in the guide, leave in the background those you don't want to be touched, and always remove the optimization for these "important" apps, I always repeat "whatsapp gmail etc". In this way you will be able to activate energy saving quietly, the apps you prefer will not be touched, and you already have a Doze optimized like the rest of the system. The only thing that applies to Custom ROMs, is always to set the Governors as described above.
That's all at last .
Attached here are my screenshots, with 8 hours of SOT, DIVIDED IN THREE DAYS, so sometimes the phone was idle as during the night or at work. With these configurations, in a single day, or in a day and a half, you will easily arrive even at 10 hours of SOT and maybe even beyond. I hope you fell asleep while reading, but I wanted to make a guide (even if long), to explain to those who may not be very practical, some things that can always be useful. A simple "thanks" is always welcome!