How Wavebox Cleverly Manages your Machine's Memory

Wavebox is a powerful desktop app for running multiple cloud apps simultaneously on your machine, and we do some pretty cool stuff behind the scenes to deliver the best possible experience for users. Want to know more? Well, once upon a time.....

Welcome to the Wavebox Warehouse

Imagine you have a giant warehouse and you are responsible for storing boxes. Lots of delivery vans arrive at the same time, so you've got two options:

  1. You can just use a tiny corner of the warehouse, and when full, you can ask the delivery drivers to wait outside until a free space becomes available in that tiny corner. You're going to have a lot of angry delivery drivers waiting outside and also a warehouse that is pretty empty and unused.

  2. Or, you could utilize the entire warehouse, welcome all the delivery drivers in until there are no more vans waiting outside. In actual fact, if more arrive, you can accept more deliveries to completely fill the warehouse.

So what's the key difference between these two options? In the first instance, we used as little space as possible but kept everyone waiting. In the second we used as much space as possible, and all the deliveries were processed quickly and efficiently.

The Warehouse Gets More Complicated

Unfortunately, you're not the only person using the big warehouse. In fact, you don't even own it. You just rent the space in it. So you've rented (almost) the entire place and filled it with boxes. There are no more deliveres waiting outside and everyone's happy. That is, until your neighbour wants some extra space. There's not enough space for both of you, so there are two options; move out or make space. You're the thoughtful and considerate type, so you decide to stack your boxes a little closer together and ship some early to make room for your neighbour. Happy days! Maybe you had to make some delivery drivers wait for a little, but it's not as if they were queuing around the block or anything.

So, to recap, your warehouse uses as much space as it can to give the smoothest and fastest experience. But when the pressure's on you can quickly start to free up some space to retain efficiency - and that's exactly how Wavebox works.

Wavebox uses quite a bit of your machine's memory, but when demand is high, Wavebox automatically beings freeing up space by clearing caches and removing data that can be regenerated later. It might be slightly slower, but everything is running effectively.

In Wavebox you can open the Task Monitor to learn more about what resources are being used. In Wavebox, click on the Settings cog and look for the 'Task Monitor' button. Open it to get an overview of all Wavebox processes together with a bit more info about them e.g. by individual app/account.

Those of you with a keen eye may have spotted that there is some disparity between the memory usage reported by Wavebox, and the memory usage shown in the Task Manager. Why? Wavebox goes to great lengths to share memory between processes, but that shared memory is difficult to account for in the Task Manager. This can lead to double counting or under counting. Wavebox is built on top of Chromium and you can learn more about why this happens in their Chromium Memory Usage blog post. (For those of you who are interested, you can also find out how to measure the commit charge in the blog).

Enough talk, let's put it to the test!

We decided to simulate our warehouse story in real-life to see what would happen. (erm, but not with an actual Warehouse). We began by measuring used memory without Wavebox, then started Wavebox and gradually increased memory pressure on the machine to see what happened. Once all apps were opened and memory consumption had settled down, we measured the total memory used, swap used, and how much Wavebox used.

In the first few tests we started off slowly, picking up speed, and increasing the squeeze on our machine's resources. Then we went a little crazy in test 6 and 7, by adding Virtual Machines to really max things out. Imagine the scene - the fans were blowing, it started to get a little warm, but there was no smoke at least, phew. We also kept Wavebox running after we quit all the other apps to see what the rebound memory usage was in test 8. See the test conditions and full results down below.

The results are clear! As the demand on the machine increases Wavebox makes more space for other apps to run. Sure everything runs a little slower, but it means you can happily keep all your other apps running too!

Wavebox went from using a hefty 3.48GB in test 1 down to 490MB in test 7. During your day-to-day use of your machine memory pressure increases and decreases all the time. Wavebox will manage the amount of memory it uses accordingly to balance memory usage and performance. In addition to this, on machines that have less physical memory, Wavebox reduces its usage even further so you can continue to run as many apps as you need.

If you need more memory available on your machine, Wavebox also has some handy tools to help you use less. For example, you can set accounts to fall asleep when they're not in use, but you still get notifications (on integrated accounts). This can reduce Wavebox memory usage from the 1000's of megabytes to just a few hundred megabytes. [Find out a little bit more about sleeping tabs here].(/put-wavebox-sleeping-tabs-to-the-test/)

If you have any questions on this article, please get in touch - we'd love to hear from you.


Full Test Conditions & Results:
For our test we're running Wavebox 3.14.5 on a Macbook Air with 8GB of memory running macOS 10.13.4. Each test details what apps were running along with the memory used in each. In all the tests, Wavebox has the following tabs & extensions running:

  • 3 Google Inbox
  • 1 Gmail
  • 1 Google Calendar
  • 1 Slack
  • 1 Trello
  • 1 WhatsApp
  • MarkdownHere Extension
  • Grammarly Extension

Test 1
Wavebox: 3.48GB. Total memory: 5.44GB. Swap: 0GB

  • Wavebox

Test 2
Wavebox: 2.69GB. Total memory: 6.34GB. Swap: 0GB

  • Wavebox
  • Chrome (4 tabs)
  • Spotify
  • Keynote
  • Pages

Test 3
Wavebox: 1.44GB. Total memory: 6.31GB. Swap: 0.02GB

  • Wavebox
  • Chrome (10 tabs)
  • Spotify
  • Keynote
  • Pages
  • Numbers
  • Apple App Store
  • Safari (2 tabs)

Test 4
Wavebox: 1.22GB. Total memory: 6.56GB. Swap: 0.23GB

  • Wavebox
  • Chrome (10 tabs)
  • Spotify
  • Keynote
  • Pages
  • Numbers
  • Apple App Store
  • Safari (10 tabs)
  • Atom Editor
  • Github Desktop
  • iMovie

Test 5
Wavebox: 0.77GB. Total memory: 6.87GB. Swap: 1.03GB

  • Wavebox
  • Chrome (15 tabs)
  • Spotify
  • Keynote
  • Pages
  • Numbers
  • Apple App Store
  • Safari (16 tabs)
  • Atom Editor
  • Github Desktop
  • iMovie
  • Firefox (10 tabs)
  • Xcode

Test 6
Wavebox: 0.56GB. Total memory: 6.5GB. Swap: 1.55GB

  • Wavebox
  • Chrome (15 tabs)
  • Spotify
  • Keynote
  • Pages
  • Numbers
  • Apple App Store
  • Safari (16 tabs)
  • Atom Editor
  • Github Desktop
  • iMovie
  • Firefox (10 tabs)
  • Xcode
  • Windows 10 Virtual Machine

Test 7
Wavebox: 0.49GB. Total memory: 7.23GB. Swap: 2.46GB

  • Wavebox
  • Chrome (15 tabs)
  • Spotify
  • Keynote
  • Pages
  • Numbers
  • Apple App Store
  • Safari (16 tabs)
  • Atom Editor
  • Github Desktop
  • iMovie
  • Firefox (10 tabs)
  • Xcode
  • Windows 10 Virtual Machine
  • Ubuntu 17.10 Virtual Machine

Test 8
Wavebox: 1.13GB. Total memory: 3.4GB. Swap: 0.53GB

  • Wavebox