But at the same time, this isn't just a Firefox issue, although they may be worse than most. Its a fundamental tenant of GC languages. You trade CPU (for the garbage collection) for RAM utilization. IIRC This was apparent by the late 70s with Dijkstra, but very clearly indicated in say Hertz where they are explicitly scaling GC overhead vs memory footprint to find that it takes ~5x the ram to approach the efficiency of an explicit allocate/deallocate model. Lower footprints are achievable but the GC overhead goes way up just to reach 2x the ram footprint such that the GC tends to dominate the CPU utilization.
And there are lots of papers like this for long running processes. GC works well if your model is basically allocate as much as you like, exit the process before actually needing to do a proper GC pass. Especially for contended systems where the memory is returned to the OS. This is why say PHP tended not to have this problem, because the memory was largely freed at the end of every request.
- the described behaviour is the one I experience on my Win10 notebook (Lenovo X1)
- Firefox wasnt always that, thats what Im refering to
- I can see in ProcessExplorer how many threads it starts & keeps, and for whatever reason this is always a lot, even if I open only 1 tab after coming from new start