For the custom ROM on the S6, it's the xtrestolite Deomod or deodexed but that's not too relevant other then the auto trim on reboot and debloated. Pure odex would be more stable though but less easier to modify for overall experience.
Custom kernel for my S6 is called the Hacker kernel which is what allows me to have the overclock to 2.4ghz big CPU cores if possible and 1.8ghz on the little CPU cores. It also allows me to Overclock the GPU to 852mhz .
Another benefit to this kernel is that it allows me to underclock really low , up to 200mhz CPU wise and 100mhz GPU wise and 100mhz is perfect for my 720p DQ gameplay, granted at ultra low shadows and low FX.
Also it's got so many settings to customise.
I actually use 2 kernel software to customise how I want to use my phone and make it fairly fast and smooth .
One of them is Kernel Adiutor which is completely free and it is fairly simple to use. What it allows me to do is underclock or Overclock, select CPU governor to choose how the CPU behaves in load and as a method for either battery saving or performance or even balanced between battery and performance , select I/O Scheduler with the read ahead cache , enable KSM (kernel samepage merging on some kernels for more efficient ram usage at a cost of CPU usage and battery life slightly , Virtual memory , low ram killer (optional if you have ram issues) and even an entropy setting for advanced users.
It also has the misc setting for the TCP algorithms and a method of phone sleep which is also for advanced users and the advanced users settings you don't generally need to touch most of the time.
While it's useful for some users, I also use another kernel editing program called Synapse - which is only useable by custom kernels, and the amount of settings depends on the custom kernel.
With Synapse, I can undervolt the hardware by a certain amount of -Mv such as CPU big little, GPU and Memory; multi core control (kernel adiutor you can offline cores after you disable cores) with a method to change how CPU behaves in terms of performance and power consumption ; GPU settings to allow the Underclock to 100mhz as well as gpu governor to control how it behaves to reduce power consumption or increase performance, thermal throttling controls to control how it drops frequency if you reach a certain temperature , I/O boost , audio boost, LED control (kernel adiutor also has one) , advanced KSM or ultra kernel samepage merging for controlling how much CPU usage to make more efficient usage of RAM ; and Crontab for auto trim at a certain time period , battery calibration every week , close Google play services to fix ram leak and clear unused ram and cache if CPU is idle. You can even overlord on overclocked frequencies.
Synapse is for having more knowledge of what to do than kernel adiutor as it's more advanced for hardware management . If you undervolt too much , you will freeze. If you overvolt too much, the hardware will be damaged or shorter lifespans and a heck of a lot more heat. Undervolt is great for reduction of heat.
There is the HPM Voltage controller for the CPU and GPU as well as RAM . For my case, it was 25000 microvolts for the CPU for both big and little but for GPU, it was 12500 microvolts and the same with Memory. 25000 microvolts is the same as -25mV or 25 Millivolts and it's best to undervolt by 4 steps down per frequency where it says 25000 microvolts or μv for short. Any lower and it was unstable .
For GPU and RAM, you only have to undervolt by 2 steps down which was stable. I do acknowledge though that every SOC and RAM for phones is different so it's different results for different people and it is truly silicon lottery, the same as with the overclock frequency. Underclock frequency somewhat true for silicon lottery but 200mhz is something nobody would run at except deep sleep. 500-600mhz minimums are decent enough and the normal minimum for S6 is 800mhz.
Today I underclock Maximum to 1.8ghz and the little cores to 1.2ghz or 1296mhz just to reduce heat as DQ didn't need so much power. To Disable DVFS so I don't have constant throttling so I get a smooth 60fps, I used ES File Explorer , enabled Root on it and found the folder which contained DVFS. The folder is sys/devices/14ac0000.mali and find the DVFS file . I then change permissions so it doesn't read and write which therefore disables it. I did the same with DVFS max lock and min lock since Samsung's throttling is annoying.
There is another way with Xposed Framework and Xposed installer but I didn't find that to work.
As far as battery savings go, I use Greenify to close unwanted background processes from battery life and possible ram usage which can matter, as well as aggressive doze for better sleep , Power Nap for deep sleep , Amplify to limit unwanted wakelocks for deep sleep yet again and an app called Better Battery saver to disable certain wakelocks off Google Play Services that you don't need to save battery. Disabling wakelocks on Google play services is not always needed though and Greenify does that.
Obviously they use Root and they also use Xposed . For Samsung devices, it's the unofficial Wanam Xposed for it to work.
For changing resolution, I used resolution changer pro which was a root method for the entire screen for battery savings but also performance enhancement for certain situations and reduce heating. Game tuner is another way for Samsung Game apps to reduce resolution if you don't want that screen 1440p to go. 720p is sweet spot for DQ and even 1080p. Game Tuner and Game Launcher are also capable of reducing frames to 30fps on some games to reduce power consumption where it isn't needed as an option too.
Titanium backup is my friend for backing up and especially DQ if I had no internet access and wanted to be careful. Also the uninstalling system apps that are bloatware . Not all but only a select few such as Microsoft apps, certain Google apps you don't want, certain Samsung apps you don't want and anything that isn't needed but won't ruin the device. If not uninstalling, you can also freeze apps which means disabling but it allows you to disable apps you couldn't disable before. Root required of course.
As with anything in the root territory, it has risks to be careful of but the rewards are high depending on what you want. The risk of losing warranty and messing up is there but as long as you're careful , you'd be fine. Obviously there's also the need to prepare for the worst whenever you do something major or a backup solution.
Also for some root apps like Titanium Backup, Greenify and Amplify , I used pro versions. For resolution changer, I got the apk since the play store version was removed. The same with busybox changer pro but the normal one is fine enough for kernel modifications as well.
For any kernel settings, there are plenty of guides on the internet generally and XDA Forums and anything if you want to root , there's always guides to tell you what to do to be careful as well as risks and how to avoid. Also YouTube has some good videos on it too. Each device is different, each hardware comes different and each person's needs are different for anything with rooting.
Sometimes rooting is all that's needed with a custom kernel and no need for custom ROMs as well as a possible Xposed Framework or Wanam Xposed Framework for Samsung. Custom ROMs do make it easier for bloat removal though but Greenify is sufficient in battery life and ram usage without the need to uninstall or freeze bloatware at times with stock version of the S6.
I still run Android Marshmallow though since I find no need for the S6 Nougat atm and less support for it in my needs but maybe for somebody else, it can be fine. Also custom ROM stays to marshmallow as well and I find it reliable. There are Nougat custom ROMs and official firmware but I'm not into them atm.
Also Synapse does have the option to change the CPU governor and it's tunables like the kernel adiutor app but having two apps with the same functionality can conflict but synapse disables it when you already have kernel adiutor which is much better for tweaking CPU governors and tunables. I/O scheduler tunables are there on kernel adiutor as well as option for rotational storage and RQ Affinity to use CPU for better storage speed and synapse doesn't have I/o Scheduler tunables.
Tunables great to really enhance how they behave .
Benchmarking storage speeds, I used Androbench and the different I/O Schedulers have an impact on how the storage behaves in a way to speed up storage but also have a potential for battery savings. CPU benchmarking I didn't bother to do, nor GPU benchmarking as the kernel apps already have live statistics showing what frequencies are used for CPU and GPU as well as temperature. Kernel adiutor has a graph of the loads being taken up though whereas synpase just shows plain numbers.
I have tried another kernel before called Arter Kernel but it didn't have the same level of customisation as the Hacker Kernel but it is more battery saving. It can also run DQ but for trimming storage automatically, I'd use an app called Fstrim to trim data and cache for consistent and fast storage speeds. It does support f2fs file system instead of ext4 though which is something Hacker Kernel doesn't have for better speeds but changing file systems has a risk of deleting everything and changing back. F2fs is much faster but ext4 is fastest when you have no other option and just trim with a good I/o Scheduler.