• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Improve battery life by using only one Core

edstewbob

Well-Known Member
Jul 5, 2010
143
48
South Carolina
Some Background
Although the RAZR TI OMAP 4430 is a dual core SMP most of the time a single CPU is adequate to provide good performance. The clock speed dynamically varies between 300 MHz and 1.2GHz based upon system load. At rest typically 300 MHz is fine but will quickly ramp up to 1.2 GHz when application activity increases. The clock speed is the same for each of the two core CPU's and as the performance demand increases both core share the workload. The speed can very quickly ramp down when the application demand goes down and this can easily be seen in the SystemPanel app. Hardware and OS (Android/Linux) inefficiencies exist when running multiple CPU's simultaneously. This is a result of internal cache management and synchronization in hardware as well as certain OS functions that must be serialized to maintain control block integrity. As more CPU's are added to a system each extra CPU has a little bit less compute power that is added to the system, although for a dual core system this effect is minimal. Any unnecessary processing or hardware overhead adds to battery consumption and may reduce overall time between charges.

What I did and observed results
I implemented a change to keep one core offline all of the time. This reduced the potential performance of the RAZR by approximately 50% but also reduced the power required to keep both core active at the same time. I made the change so that the core was also taken offline during reboot.
Performance
Most of the time the performance was fine. I could play Where's my Water and Plants Vs. Zombies with no visible performance impact. Mostly activities that take good advantage of multiple processors will be impacted. Also if some background tasks are active it could impact observed performance. There were a few cases where I could see some minor occasional lag in Go Launcher EX screen scrolling but nothing too bad so far. I have had this active for 3 days now.
Battery Life
I seldom could go a full day on a single charge with light use (40-50 SMS/MMS, browsing, occasional email, 1-2 5 minute calls). Because I don't like to get the battery too low I keep it on the USB much of the time. I also have an external battery to carry everywhere I go. Based upon my observations this last 3 days I would estimate battery life has been improved by 10-20%, just enough to let get me through a full day with minor use on a single night time charge. This is just my personal subjective observation and I'm sure it could vary quite a bit for others but for me I am pleased with the results.

How I did it
First of all root is required. I decided to post this in the non-root area because I thought it would have more visibility to others as this is a major concern of most RAZR users. Second of all I used Tasker so my instructions will be based on Tasker and assume root is active. Tasker is fairly expensive for an Android app but does lots of different things. I'm sure there is another way to do this but since I already have Tasker this is what I used.

1. Setup two Tasks called CPU ON and CPU OFF. I chose the stars as icons but you can use anything you like.
1330301801554.jpg


2. For CPU OFF Task setup two steps Wait and Write File.
1330302008312.png


3. The Wait step is for 15 seconds so that when I reboot the phone there is enough time delay so that the 2nd step can run successfully. Before adding this step the reboot would not successfully turn one of the CPU's off.
1330302081390.png


4. The Write File step writes a zero into a file that determines whether CPU 1 should be considered offline (0) or online (1).
1330302127016.png


5. CPU ON just writes a 1 into this file and can only be done manually whenever you want both CPU's to be active.
1330302194718.png


6. Setup a Tasker Profile that runs at Device Boot that executes the CPU OFF task.
1330302236864.png


7. Setup two screen shortcuts using Task Cut to select CPU ON and CPU OFF tasks so that they can be executed manually at any time.
1330230303115.png


As usual your mileage may vary, nothing is guaranteed, and I caution anyone trying this to be very careful but I just wanted to share something that worked pretty well for me.
 
  • Like
Reactions: milkshed27
I think a useful test would be to just see what the phone does with it idle. Turn one cpu off, and see how battery drains compared to both on letting it sit overnight.

I will try that the next couple of nights with one and 2 core active with only background sync activities. Thanks for the idea. I would like a more objective comparison also.
 
Upvote 0
If you could post screenshots of the battery burn down for comparison that might help too. I was abler to see .173 was significantly better than prior builds by comparing battery burn slopes.
Not sure exactly what you mean by battery burn down screen shots. Is there some utility to use for this? All I am doing at the moment is comparing the % of battery life remaining when sitting idle all night with a few background tasks running.
 
Upvote 0
Not sure exactly what you mean by battery burn down screen shots. Is there some utility to use for this? All I am doing at the moment is comparing the % of battery life remaining when sitting idle all night with a few background tasks running.
If you have the paid version of system panel, you can use the monitor/history function to get a plot of the battery decay over time. A screenshot of that would show graphically how the battery goes down during idle times, as well as what other CPU hits may have happened.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones