15% off membership for Easter! Learn more. Close

The Chrome team is looking to reduce power utilization on mobile phones when using the browser. How would you go about solving this problem?

Asked at Google
3.7k views
Asked at
eye 3.7k views eye 3.7k views
Answers (3)
crownAccess expert answers by becoming a member

You'll get access to over 3,000 product manager interview questions and answers

badge Platinum PM

Clarifications:

  • Is the goal to reduce the power consumption for Chrome when user are using it in the foreground, not when it's runing in background? [Yes, during active use]
Analysis:

Typically mobile Apps consumes power when they

  • Lights up the screen
  • Send/Receive mobile data
  • Transfer data through internal I/O
  • Utilize processors (including GPUs)
It's possible to first bench mark during different scenarios, such as loading, scrolling, clicking through and refreshing, the mix of battery usage.
It's also possible to attribute the batter usage to Chrome core, extensions, plugins.
By looking at the distribution between screen/processor/internal I/O/Mobile data, and the distribution across Chrome core, extension and plugs, we can prioritze our efforts and focus on the areas with the most reduction headroom. When the user it actively using Chrome, there is probably not much we can do with screen power consumption, we can focus on other aspects.
 
For reducing power consumption by reducing mobile data usage, we can consider:
  • [Partial Loading]Due to the small screen size, we can only load portions of the page to only fill the mobile screen, and defer further loading when user scroll down the page.
  • [Text first] We can consider loading the text first, image and video till user clicks on them.
  • [Data Compression] We can consider compressing the mobile page so that we only transfer the compressed pages. Anyway, we need to make sure the saved power from less mobile data usage won't be outweighted by the added CPU usage to handle compression.
  • [Disable Components] We can block plugins and extensions from using the mobile data.
For reducing processor usage, 'Disable Components' feature will also work here. Additionally,
  • [Reduce Frequency] We can lower the CPU frequency to save power, when user is only doing processing-inextensive tasks such as reading or typing.
Normally internal I/O usage is caused by swapping data from memory into slower storage. To reduce it,
  • [Fewer tabs] we can consider to only allow a few tabs during power saving mode, so that they can all fit into memory instead of keep swapping between memory and storage.
Evaluation
Most of the feature mentioned above will save power at the expense of user experience, they also have different reduction headroom and implementation complexity. Let's assume the following is ranked in descending order in terms of power reduction.
  • Text Only 
    • Power Saving: High- a lot of saving by skipping unnecessary downloading of image/video
    • UX impact: Med, user will have to click on video icon to initiate playing
    • Complexity: Low
  • Partial Loading
    • Power Saving: High, especially when user don't need to read throug the whole page.
    • UX impact: Low, user will experience some loading time when scrolling down.
    • Complexity: Low
  • Fewer Tabs
    • Power Saving: Medium
    • UX impact: Low, user will be prompted to kill a tab before they can open new ones.
    • Complexity: Low
  • Reduce frequency
    • Power Saving: Low, probably already optimized by the OS.
    • UX impact: Low, user probably won't be able to notice.
    • Complexity: Med.
  • Data Compression
    • Power Saving: Low, large items like image and video are already compressed. limited headroom.
    • UX impact: Low.
    • Complexity: High, if not all web server supports this, we might need to go through proxy servers.
  • Disable Component
    • Power Saving:  Low, unless the component is consuming a lot of processing power
    • UX impact: High, disabling some component might impact the usability of page.
    • Complexity: Med
Summary:
Based on the above analysis, I will probably go with Partial Loading> Text Only>Fewer Tabs>Disable Component
Access expert answers by becoming a member
1 like   |  
Get unlimited access for $12/month
Get access to 2,346 pm interview questions and answers to give yourself a strong edge against other candidates that are interviewing for the same position
Get access to over 238 hours of video material containing an interview prep course, recorded mock interviews by expert PMs, group practice sessions, and QAs with expert PMs
Boost your confidence in PM interviews by attending peer to peer mock interview practices, group practices, and QA sessions with expert PMs
badge Platinum PM

Here is the approach that I will follow to answer this question.
A. Brainstorm reasons why chrome browser typically causes high battery drainage
B. Come up with potential solutions (either voluntary – requiring user input or involuntary – happening behind the scenes without user input) that can help reduce battery drainage.

The things that usually drain the battery power of devices using chrome browsers are:
1. Having multiple tabs open (one or two is ok but on mobile phones, people typically end up keeping multiple tabs open)
2. Having a lot of chrome extensions (while it is tempting to get the next new extension, these drain battery power)
3. Having chrome continue to run in the background (even when you have closed your chrome browser- it may continue to run in the background)
4. Google drive offline access – One of the tools that Chrome uses is Google Drive. Running Google Drive in offline mode drains battery.
5. Many of the demanding and battery draining elements on a page require a Plug in – such as Adobe Flash – Disabling Flash and making plug-ins – click to play usually help with battery drainage
6. Using older versions of Chrome (Newer versions are usually much more efficient and require less battery power)
7. Large images, CSS, JS etc on a web page probably require a lot of battery power as well for the browser to load

Solutions

When someone opens and uses chrome on a mobile phone – they could be reminded to
a) suspend tabs (especially when its not one that has live chat open) (voluntary) or Chrome could have a setting where a user can opt to have unused static tabs be suspended or closed after a period of time (involuntary).

b) Chrome extensions – Depending on the make and model of phone and assessing the battery power left, Chrome could automatically disable extensions that are high battery draining and are low usage by the user. (Involuntary). When a user tries to download an extension that might cause high battery usage- chrome can warn them about the impact to the battery usage.

c) Google Drive offline access – Same here. Google Drive offline access could be closed automatically by Chrome when not required.

d) Adobe Flash/ Plug-ins – Chrome could warn users against installing flash and other plug ins which cause high battery drain. The Chrome team could recommend/offer alternatives to Adobe Flash/external plug ins which cause lower battery utilization
e. Users of android phones/Google pixel could be auto updated to latest versions of Chrome that are more battery efficient

f. Large images/CSS/JS – Depending on the type of content being viewed or rendered – images/videos/audio – different compression methodologies can be used to reduce impact on battery drainage. Better caching can be done to reduce server calls and battery usage. This can be done specifically when the phone has low battery.

Access expert answers by becoming a member
2 likes   |  
1 Feedback
badge Platinum PM
And of course running Chrome in the background – Chrome should either prompt users to kill chrome or have a setting up front to kill Chrome if it has been running for X number of days without being used.

In the end – I will need to prioritize all of these features based on impact on battery drainage and ease of implementation. In the interview, this may be a great opportunity to have a discussion with the person asking the question and determine whats easy vs hard. This is also a great time to discuss how to test some of these to check impact on battery power as well as usability of chrome, what metrics would we measure in addition to just impact on battery?

This is how I would prioritize:
I would assume that all the features where chrome could ask the user to do something – disable plug in, disable extensions, disable Google drive, suspend tabs, update to latest version of Chrome could be done easily.
The involuntary actions might cause some disruption to users or may require some more thought so as to not cause unnecessary disruption.
The image/video/audio compression during browser rendering might be harder and may be the last one we prioritize.
0
Get unlimited access for $12/month
Get access to 2,346 pm interview questions and answers to give yourself a strong edge against other candidates that are interviewing for the same position
Get access to over 238 hours of video material containing an interview prep course, recorded mock interviews by expert PMs, group practice sessions, and QAs with expert PMs
Boost your confidence in PM interviews by attending peer to peer mock interview practices, group practices, and QA sessions with expert PMs
badge Bronze PM
  1. I think one of the first steps in this whole process has to be to have the correct instrumentation in place to measure the power consumption of a specific App (in this case Chrome), over mutliple conditions
  2. Once we have established it's reliability we'd need to measure what Device & OS factors can vary across phones (both iOS & Android) and have the largest impact on power consumption variation. Could include CPU types, memory types, OS versions. 
  3. Come up with the list of most common test case site categories that users have been hitting in the last say 6-12 months
  4. Across a matrix of Device, OS, Memory combos vs Site Categories, establish baseline power consumption when the test sites run for Avg session length, in foreground & background mode
  5. After this we should go into the above steps i.e. variations to be tested. 

Point is that without reliable measurement and comparison techniques, our solutions may or may not be trustworthy.

 

Access expert answers by becoming a member
0 likes   |  
Get unlimited access for $12/month
Get access to 2,346 pm interview questions and answers to give yourself a strong edge against other candidates that are interviewing for the same position
Get access to over 238 hours of video material containing an interview prep course, recorded mock interviews by expert PMs, group practice sessions, and QAs with expert PMs
Boost your confidence in PM interviews by attending peer to peer mock interview practices, group practices, and QA sessions with expert PMs
Get unlimited access for $12/month
Get access to 2,346 pm interview questions and answers to give yourself a strong edge against other candidates that are interviewing for the same position
Get access to over 238 hours of video material containing an interview prep course, recorded mock interviews by expert PMs, group practice sessions, and QAs with expert PMs
Boost your confidence in PM interviews by attending peer to peer mock interview practices, group practices, and QA sessions with expert PMs