[G2 General] PsyintZ:
Hi there XDA!

Lately, I have been toying around with a few app suites developed for tweaking an Android device to improve performance. Before I begin, I'd like to know which app suite you guys prefer out of JRummy's Rom Toolbox Pro, or 3C's Toolbox Pro? Or should I be using a standalone kernel mod like Willi Ye's Kernel Adiutor since it appears to have a few more options, and was developed specifically for modifying the things being covered in this topic? This might sound like a dumb question, but if I were to use a standalone mod like Kernel Adiutor, would I be able to apply the settings & have them hold - without Rom Toolbox Pro or 3C Toolbox Pro overriding the settings (with their own kernel settings)?

Have you guys tried out all 3 of these apps? If so, which one would you recommend and why?

Now, onto the good stuff. Allow me to begin by saying I am quite the amateur when it comes to making advanced modifications to mobile devices. I have only gone as far as rooting devices, and then doing a bunch of Google searching & reading up on topics such as: "useful apps for rooted androids," "how to optimize performance, android," and other similar searches. So, basically, I am very familiar with all of the well-known root apps and their basic functions, but I don't have a clue as to HOW they work, or what makes them tick. Now before I ask my questions, I will go ahead and post a list of the "tools" that I have installed since rooting my phone - just in case any of you have any suggestions. Perhaps any apps that I may have missed, that would be useful - or, any apps that I have that you suggest I get rid of (whether it be because they don't have much use, or are just wasting space due to redundancy, etc.)

Enhancement Tools installed on my LG G2 - VS980 3AA (Lollipop 5.0.2)

:

Rom Toolbox Pro (One of the "all-in-one suites" related to this thread)

3C Toolbox Pro (The other "all-in-one suite" related to this thread)

Kernel Adiutor (The standalone kernel mod related to this thread)

FlashFire (For flashing zips without recovery)

BetterBatteryStats (For monitoring battery usage)

Wakelock Detector (For... detecting wakelocks)

Greenify (For hibernating processes so they don't run in the background)

JuiceDefender Ultimate (For creating battery saving profiles)

Tasker (For automating tasks - have yet to become very familiar with this)

MyAndroidTools Pro (For disabling bloaty services, receivers, and activities)

Root Explorer (Improved file manager with root capabilities)

Roehsoft RAM Expander (Optimizes memory via swapfile)

Titanium Backup Pro (For making backups & freezing/deleting unwanted apps)

Terminal Emulator (For executing script commands when needed)

BusyBox (For allowing specific Linux commands - I think?)

Viper4Android (For improving sound quality)

That's my list! If anybody has any suggestions regarding any apps I do not have that I should - or any apps that I should not have - please let me know. Now, the reason I'm here is because I have been fiddling around with my kernel settings; specifically the Governor (and it's associated tweaks), and the I/O Scheduler. Before asking for your thoughts & opinions, I will try to explain the little bit I know based on what I've read thus far. The following information will be my attempt at simplifying what little knowledge I have pertaining to Governors and I/O Schedulers:

GOVERNORS

(I know there are a ton of modified governors, but I will only be listing the few basic ones that Rom Toolbox Pro offers me):

ON-DEMAND: Ramps up to the maximum CPU frequency when the desired CPU load has been reached, and then gradually steps frequency back down as CPU load lessens. It is a pretty solid/reliable governor, but has been known to have some issues with heavy loads and/or multitasking. Never a bad choice, but probably not optimal for battery life or performance.

CONSERVATIVE: Tries to bias the phone to use the lowest frequency as often as possible, in order to save battery. Unfortunately, this governor's performance is based on the system using it along with the way it is implemented. The original/unmodified Conservative has been known to be choppy, slow & inefficient. Newer, modified versions have seen some decent improvement. Still probably not the best choice for performance.

INTERACTIVE: In a similar way to OnDemand, this governor dynamically scales frequency based on the workload. However, unlike OnDemand (which samples based on work-queues), Interactive uses a timer based approach which allows it scale up frequency much faster than OnDemand. This makes it the optimal choice for performance. However, you may experience a slight decrease in battery life.

POWER-SAVE: Locks the CPU at the lowest frequency set by the user. Only used in rare circumstances.

PERFORMANCE: Locks the CPU at the highest frequency set by the user. Not usually necessary and should only be used by people with advanced knowledge relating to kernel modification.

I/O SCHEDULERS

(Again, I know there are a lot of these, but I will only be listing the few basic schedulers that Rom Toolbox Pro offers me):

NOOP: Uses a "First In, First Out" approach to queueing IO requests. Works well on flash based drives because they do not require reordering of multiple requests like normal hard drives. Because of this, many mobile phones use this as their default scheduler. Overall, a very simple & reliable scheduler that tends to be fairly easy on the battery. Cons? May perform poorly on older devices, and under heavy workloads.

DEADLINE: Unlike Noop's queued approach, this scheduler uses deadlines to prevent starvation of requests, while prioritizing read queues. It is a pretty solid all-around scheduler that works well on flash based drives while favoring performance (especially when it comes to reducing the latency of a single I/O request - e.g. watching a video). It tends to be incredibly smooth under light & medium workloads but has been known to suffer under heavy workloads as well.

ROW: Designed specifically for mobile devices, this scheduler prioritizes 'read requests' (loading files/booting up/etc) by dispatching them first - without starving the 'write requests' (saving/installing/downloading/updating/caching) too much - which greatly reduces latency in read requests. This results in faster & smoother UI navigation, as well as speedier bootup & app launch times. Many consider this scheduler to be the best choice for modern mobile phones, as long as you don't mind sacrificing some writing speed in favor of faster drive reading. Some users have also reported that Row performs much better than Deadline under heavy workloads, so it may just be the optimal choice as long as you are not doing a lot of writing to the drive (such as installing or downloading files, updating a bunch of apps, or using location-based services like Maps).

CFQ: Uses a "Fair Queueing" strategy by distributing bandwidth equally across all IO requests. Said to be a fairly solid all-around scheduler that tends to be better for traditional hard disks, but can certainly give better throughput in some mobile scenarios, such as heavy multitasking. However, the other 3 choices are probably better for typical mobile usage (when not multitasking heavily).

Aaaaand that's it! That's basically what I know about Governors and I/O Schedulers. Now, I am very aware of the fact that different settings will perform and behave differently depending on many different factors (such as phone model, kernel version, processor speed, tweaked settings, etc), and that is why I have made this post. Since you all now know what I know, I would like to know what you know! (Yikes! Tongue-tied!)

*Which Governors have you tried? What were your experiences? Which one would you recommend for best performance, and why?

*Which I/O Schedulers have you used? What are your conclusions? Which one would do you think performs the best, and why?

*What kernel modifying apps have you used? Rom Toolbox Pro? 3C Toolbox Pro? Kernel Adiutor? Which one would you recommend, and why?

My Current Settings:

Phone: LG G2 - VS980 3AA (Lollipop 5.0.2)

I/O Scheduler: Switching between Noop, Deadline & Row. Trying to determine which one provides the fastest/smoothest experience (& not having much luck).

Governor: Interactive (Slightly modified for better/faster performance)

My Modified "Interactive" Settings:

- Go HiSpeed Load: 70%

- High Grid Load: 60%

- High Grid Step: 30

- HiSpeed Freq: 2,265,000 (my kernel's maximum allowance)

- Middle Grid Load: 40%

- Middle Grid Step: 20

- Min Sample Time: 40,000

- Optimal Max Freq: 2,000,000

- Sampling Down Factor: 0

- Sync Freq: 2,265,000 (my kernel's max allowance)

- Target Loads: 85%

- Timer Rate: 20,000

- Timer Slack: 40,000

- Up Threshold Any CPU Freq: 2,000,000

- Up Threshold Any CPU Load: 90%