Google Improves Chrome Performance by Evaluating Hidden Windows

Google Improves Chrome Performance by Evaluating Hidden Windows

In a new blog post for its series called The Fast and the Curious, Chrome Developer David Bienvenu details some of the improvements Google has made to its Chrome browser recently. This includes a deep dive into what the company calls Native Window Occlusion.

The blog post explains the work Google has done to reduce resource consumption by non-visible tabs and windows in Chrome, which it says has allowed Chrome to boast up to a 25.8 percent faster start up speed and to experience 4.5 percent fewer crashes. It also notes the company has been working for years on methods to better understand how to ascertain which Chrome windows and tabs are visible to the user, so it can allocate the system’s resources appropriately.

Naturally, tabs that are not in focus, known as “background tabs,” have reduced priority for CPU and GPU resources, but what about occluded windows — windows that are open, but completely or partially covered by other windows? Bienvenu writes that in studying this issue, Google learned that, “20% of Chrome windows are completely covered by other windows, i.e., occluded. If these occluded windows were treated like background tabs, our hypothesis was that we would see significant performance benefits.”

Thus began the Native Window Occlusion project, which would allow Google to understand the occlusion state of any open Chrome window. However, to figure this out, they had to know the location of non-Chrome windows too, which isn’t information that Windows OS readily provides. This gets even trickier when factors such as multi-monitor setups and virtual desktops are taken into consideration. To figure it out it created the “occlusion calculation,” which runs in a separate thread from the UI by first calculating the total visible area to the user, then subtracting all Chrome Windows from the visible area in a virtual desktop as “occluded.” It then examines each open window, from front to back, subtracting any open window from the total, and if its’ a Chrome window, it checks to see if its area overlaps with the un-occluded area. If it didn’t, that means the Chrome window is completely covered by previous windows, so it is occluded. The software keeps running the calculation until all Chrome windows are marked as occluded, meaning what is left must be visible to the user. With this information, a task is posted to the scheduler to update the windows’ visibility.

Google Improves Chrome Performance by Evaluating Hidden Windows

Where it gets interesting is the next step, which asks the question, “How often do we want to run this calculation?” As the author notes, running it continually would degrade performance, so they have to be selective. Thankfully, Windows allows apps to track events such as moving or resizing open windows, so Chrome is hooked into these notifications, so when you move or resize a Windows Chrome is alerted, and decides whether to do a new occlusion calculation. The blog notes this calculation runs on a 16ms timer, which corresponds to the interval between frames when displaying 60 frames per second(FPS).

Google rolled this change out to 100 percent of Chrome users in October 2020, and now that some time has passed the company is able to share the results of its “experiment,” which include:

  • 8.5% to 25.8% faster startup
  • 3.1% reduction in GPU memory usage
  • 20.4% fewer renderer frames drawn overall
  • 4.5% fewer clients experiencing renderer crashes
  • 3.0% improvement in first input delay
  • 6.7% improvement in first contentful paint and largest contentful paint (this is when you’re first able to see anything on screen, and when the page’s main content is visible)

Though none of this is breaking news, it’s interesting to read about what is happening behind the scenes, both with our browsers and with the Chrome team as well.

Continue reading

Microsoft: Pluton Chip Will Bring Xbox-Like Security to Windows PCs
Microsoft: Pluton Chip Will Bring Xbox-Like Security to Windows PCs

Intel, AMD, and Qualcomm are working to make Pluton part of their upcoming designs, which should make PCs more difficult to hack, but it also bakes Microsoft technology into your hardware.

Apple: ‘It’s Up to Microsoft’ to Get Windows Running on New ARM Macs
Apple: ‘It’s Up to Microsoft’ to Get Windows Running on New ARM Macs

According to Apple, the question of supporting Windows on the M1 is entirely in Microsoft's court.

How Does Windows Use Multiple CPU Cores?
How Does Windows Use Multiple CPU Cores?

We take multi-core awareness for granted these days, but how do the CPU and operating system communicate with each other in the first place?

Minecraft With Ray Tracing Now Available for All Windows 10 Players
Minecraft With Ray Tracing Now Available for All Windows 10 Players

You don't usually think of Minecraft as a realistic game, but the developers have been hard at work adding RTX ray tracing to the game for the last eight months. It's finally out of beta today, and it really works with the blocky look of Minecraft.