![Firefox logo](https://assets-prod.sumo.prod.webservices.mozgcp.net/media/uploads/products/2020-04-14-08-36-13-8dda6f.png)
Does using containers have the benefit of managing cpu usage/memory
I'm essentially new to the subject of containers. Forgive the awkward title, but I couldn't figure out how to concisely express what I'm curious about.
For example, hypothetically you have a 3000+ tab session, which on occasion may max out your cpu/memory with unpleasant/inconvenient consequences.
I was watching a Youtube video on the subject, mentioning that, in some ways, containers can be compared to kinda like having multiple, isolated profiles.
Is that how it works? Can I separate 3000+ tabs into 6 containers of 500 each, and expect each one of them to behave independently of the others, like 6 separate profiles, at least from a memory management perspective?
Wót noel_envode
Wšykne wótegrona (8)
Containers are process-isolated from each other, so they will use more resources compared with opening the same site in multiple tabs without containers but less than using separate profiles.
HI zeroknight
zeroknight said
Containers are process-isolated from each other, so they will use more resources compared with opening the same site in multiple tabs without containers but less than using separate profiles.I'm sorry, but I don't understand the analogy. If they're isolated from each other, they will use more resources, from an area they are residing in that only draws 500 tabs vs 3000 tabs worth of resources (I realize that's very simplistic, but that's the root of my confusion).
I have a feeling that's not what you intended, but that's how it reads to me.
Wót noel_envode
Agree, it would use much more resources than in normal case.
from an area they are residing in that only draws 500 tabs vs 3000 tabs worth of resources
It is still 3000 vs 3000.
TyDraniu said
Agree, it would use much more resources than in normal case.Am I correct in saying you are not agreeing with me? Sorry, I beg your patience, but I still can't tell.from an area they are residing in that only draws 500 tabs vs 3000 tabs worth of resourcesIt is still 3000 vs 3000.
You said "normal case", but at this point, I'm not sure what that is.
Let's start over. Let's say I have two identical profiles, both with 3000 tabs.
Are we saying that if split 3000 tabs into 6 sets of 500, one of those 500 tab containers that it would use more resources than a container-less profile of 500 tabs, but less than one with 3000 tabs?
If the total number of tabs is still 3000 then only the numbers of containers matter and the more containers you use, the more memory is used. With fission enabled, things might be different as without using containers there would still be multiple processes. You can find the current multi-process state on the Troubleshooting Information page (about:support).
- "Help -> Troubleshooting Information"
"Application Basics":<be>Multiprocess Windows and Fission Windows
"Remote Processes" (Web Content)
See the Firefox View button and the about:processes and the about:unloads and about:memory pages for more info.
noel_envode said
if split 3000 tabs into 6 sets of 500, one of those 500 tab containers that it would use more resources than a container-less profile of 500 tabs, but less than one with 3000 tabs?
It depends how many tabs belong to the same site, if they are all different sites then containers won't make any difference since sites are already isolated in separate processes. Splitting the same site across multiple containers duplicates resources so it will increase resource consumption but less so than using multiple profiles.
Really, I'm trying not to nitpick here. So basically are we saying that "activating" a tab in one container has the effect of multiplying the impact on resources by however many times that tab exists, regardless of where it exists?
In general, barring a site that in itself is a resource hog, I thought the magnitude of six times number of tabs would far outweigh the impact on resources a few tabs the containers might have in common?
Wót noel_envode