Is Teams Really a Memory Hog?
Teams often gets tagged as a performance hog, with people pointing to the huge amount of memory the desktop client grabs on Windows and the constant ticking over of CPU cycles when the client seems to be inactive. Like many assertions, there’s a mixture of truth and fiction mixed in here.
Teams is built on the Electron platform. Some hold that this is the foundation of Teams demanding so much memory because of the need to load so many libraries. It’s true that the decision to use Electron as the development platform incurs some cost. But any platform brings some penalty, and the upside of using Electron is that Teams gets a client that works in much the same way on Windows, Mac, Linux, and browsers.
Chromium Memory Management
Chromium is part of Electron. It’s used by Teams for rendering the user interface and text. As Teams is an intensely graphical application, a lot of rendering happens, and memory is consumed. An interesting Microsoft article explains how the Chromium memory model works for Teams. Essentially, if a workstation has free memory, Teams will take some of that memory to cache data and keep structures in memory instead of going to disk. As demand grows from other applications, Teams releases memory. It’s therefore an expected condition to see the Teams processes occupy a lot of memory, even when apparently idle.
Tracking Memory Usage
Microsoft’s article says that because the desktop and browser clients share the Chromium memory management model, much the same memory usage profile is seen. I tested this assertion and found that it’s true. Figure 1 shows the Windows Task Manager report that the browser client loaded into Edge Chromium takes up 775 MB while the processes which compose the Teams desktop client need 887 MB. The Outlook desktop client, another application often criticized for its size, looks svelte in comparison.
In both cases, the data was after a sustained period of activity. Memory usage grows and declines as Teams features are accessed. For instance, loading a recording of a live event into the browser rapidly grew usage past 1 GB. Switching tenants, moving between apps (including the basic apps like the Activity feed, Files, and Calendar), and accessing chats and channel conversations all cause a demand for memory. Meetings are the most demanding app in terms of consumption due to the need to process audio and video feeds. The lowest reported memory I have seen over several days of monitoring was circa 250 MB. Your mileage might vary depending on how you use Teams and the configuration (hardware and software) of your PC.
Memory Better Than Disk
Using 1 GB of memory, even on a 16 GB Surface Book 2, seems an awful lot for a single application. But using available memory to cache and manipulate data usually results in better performance, especially if an application can avoid reading data from disk. Even the fastest SSD is much slower than memory.
Of course, memory is not the only thing to consider when looking at an application’s performance. Teams has had its challenges in other areas, notably when rendering video or using a high-definition external monitor. When I plug my PC into a HP Envy 34 inch monitor at 1080p, memory usage increases slightly for both Teams and browsers; scaling up to drive a 4K monitor demands more memory and GPU cycles.
Keep Applying Updates
Keeping performance within acceptable limits is always likely to be a challenge, especially when the application functionality changes often, which is the case with Teams. For instance, we’ve yet to see how the new 7 x 7 large gallery view and the Together mode for meetings perform across a variety of workstations. Maintaining acceptable performance is one of the reasons why Teams updates its clients so often and why it’s important to make sure that client workstations get those updates. It’s also important to apply Windows and driver updates to workstations.
Keeping the good news until last, memory usage by Teams and other Chromium-based applications dropped on my PC after applying a number of recent changes, including the 2020-07 cumulative updates for the .NET framework and Windows 10 1909 and an upgrade to version 84 of Chromium. Teams was also upgraded to Version 1.3.00.19565. Initially I thought that an impressive drop had occurred when I saw Teams using 306 MB (Figure 2), even after switching between tenants, posting some messages, and attending a meeting.
Memory usage tends to grow over time and Teams is no exception. The 306 MB grew to about 750 MB as the day progressed and different events occurred, including frequent tenant switches and peak usage topped 1.2 GB after the PC resumed from hibernation and Teams restored itself (and probably checked the six tenants I connect to – perhaps due to cache synchronization). However, in normal use, memory usage never went higher than 800 MB and normally hovers around 625 MB. That’s still hefty, but less than before.
I’m not quite sure which update had most effect, but I’m thankful that the Teams performance profile shows some signs of improvement. Again, your mileage might vary depending on the work you do and the number of tenants you connect to.
Need more information about how Teams really works? Check out the Office 365 for IT Pros eBook and the detail included there.