Recommended Posts

Everyone has encountered this unstoppable memory eater called web browser. I've been using it myself you know for ALOT of time and it's not very pleasing.

I've made some analysis and saw that the main page of neowin isn't so big and the browser doesn't have to download much code, images and other needed files for displaying the page, but why does 600KB of data stretch to 100MB for example in Chrome?

Does anyone know what eats the whole memory? The rendering, displaying, storing data structures of the page or the V8 engine with it's JavaScript interpretation or the Flash Player or some other memory eating beast? I suspect V8 for that. Even without all the flash player instances in a webpage it still uses an awful lot of memory, if I use a flash player blocking extension for example or check the Chrome task manager and see how much memory all flash player instances use.

What's the oppinion of the neowin community? Where goes all our precious memory?

Link to comment
https://www.neowin.net/forum/topic/1149408-the-memory-eater-called-web-browser/
Share on other sites

I think OP is just trying to figure out why this site is so dang slow the majority of the time when there really isn't much to it?

I know I'd like to know as would a whole bunch of other people as there is a topic here devoted totally to that which is multiple pages long.

Lets use this image as an example

hIbDHbul.jpg

On-disk it's 299KB but decompressed in memory it's 5.3MB. And that's just one image, every single image used takes up memory (Scaled copies, headers, pointers, temporary surfaces used for drawing, etc.), along with the actual screen contents used for rendering (Browsers these days don't draw web pages as a single screen sized image, they split it up into segments and overlay them, meaning you could easy be using 3 or 4 large images to represent a single page, using even more memory, etc.) And then you just have stuff like the DOM (A DOM elemeent takes up more memory than the compressed text that represents it, etc.) CSS information, scripts (compiled and uncompiled), script memory usage, etc.

First off, plugins and extensions aside. We're concentrating on the page itself. Even without them it still takes alot of memory and CPU resources. I agree with The_Decryptor about the decompressed images and the big rendered images. It's a good explanation, but still there was one time a page which took almost 700MB of my memory and it was just a simple article. Probably a memory leak, dunno. How much memory does the JavaScript portion of the neowin page take? Are there tools avaliable to acquire this information?

Remember, the browser does a lot of other stuff in the background... HTTP pipelining, JIT javascript compilation (which eats up quite a lot of memory just by itself) , and other stuff. Unless you're running critically low on memory it's not worth panicking about, memory is there to be used it does no good sitting idle and empty ;)

I think the major problems (especially with Firefox in the past) is that the memory management wasn't all that good, for example after more than a day with the browser open and in that time countless tabs opened and closed, the only way to flush the memory footprint taken up by the browser was to close and restart it.

I use Chrome now, so I don't know how much has changed there, all I know is what I had to do everyday with it :p

I use Chrome now, so I don't know how much has changed there, all I know is what I had to do everyday with it :p

Firefox, now, plays very well with RAM, and in a past, there was problem mostly with addons leaking memory then with Firefox it self, most addon devs made their home work. For example Ad Block Plus still rise overall RAM usage in some about 100MB, but in times with PC +4GB RAM this is small price ;)

It's "time vs space" trade-off. The interpreted nature of webpages is not of the efficient sort to begin with. In browsers you have all too many of these - various attempts at HTML and CSS versions, both usually full of workarounds, leeways, lax attitude and generally shyte code, and then the awesome JS, being previous two plus getting compiled so it doesn't have to interpret it all over again for each little event that happens to run some JS.

They're all actually doing a really good job with a totally backasswards technology in the first place.

Thus it clogs up your RAM. RAM is intended to be used exactly in this way, though. If it sits empty, you've wasted your money.

This topic is now closed to further replies.
  • Posts

    • "Of course the easiest solution is to switch to uBlock Origin Lite if you want to remain on Chrome, as it is MV3-based, but from our experience, uBO Lite does not seem to be as good as the original non-Lite version" In my experience uBlock Origin Lite does the job for normal everday home users. When they kill that we get to watch Firefox and Brave get a boost in user market share.
    • Block by DNS ad blocker! I dare you! I will even layer unlock Origin, on top of my internal DNS, if I need to and I don’t even block ads today (I really should but this type of behavior makes me angry). I suppose I could also just be lazy, and add the flags myself, back to each release (it wouldn’t be that difficult).
    • Wonder what MPs have ties to these privacy/verification/data harvesting companies that are going to step in this time. Last time under the Tories half the cabinet had fingers in the pies, heck even the PM and his wife at the time was working for silicon valley, probably made a fortune.
    • Google Chrome is killing all uBlock Origin bypasses, Microsoft Edge, Opera to follow by Sayan Sen For a while now the transition away from Manifest V2 (MV2) to MV3 has been on-going and it looks like it is entering its final phase of deprecation, at least, in the case of Google Chrome. A recent discussion thread in the w3c WebExtensions Community Group GitHub repo has highlighted how the latest and upcoming versions of the most popular browser are expected to be its final releases with support for MV2 extensions. Chromium contributor Andrey Bershanskiy shared details about recent Chromium changes and according to comments from Google engineer Devlin Cronin, Chrome has now started removing the flags that previously controlled MV2 availability. kExtensionManifestV2Disabled, the Chromium feature flag that allowed controlled disabling of MV2 add-ons, is now completely removed, which means you will likely no longer find uBlock Origin in your browser extensions list. He wrote: "The kExtensionManifestV2Disabled feature has been default-enabled for over a year. Remove the feature and the effectively-dead code. ... Any tests that relied on being in the "warning" phase (i.e., with the kExtensionManifestV2Disabled) for their sole behavior testing are removed, since this stage is no longer reachable." Cronin further explained why MV2 extensions are no longer allowed in supported Chrome versions as maintaining the associated functionality indefinitely is no longer possible. He cited growing technical difficulties and implementation complexities as well as security concerns. He wrote: "MV2 extensions are no longer allowed in any supported version of Chrome, and we are removing support for them and the associated functionality. We won't be able to provide / maintain this functionality indefinitely due to the complexity and tech debt, as well as the security risks it entails (we've actually found a number of bugs that are specific to MV2 lately). Of course, other browsers can continue supporting these if they so desire. Unfortunately, we won't be putting code behind a compilation flag ... We won't be removing all the MV2 code wholesale right away, so many of these things will continue working for awhile (but they will go away eventually, and some may go away sooner than others)." What this essentially means is that the tricks and bypasses that were used to keep MV2 extensions like uBlock Origin and others alive will not work any more on Chrome, or at least not for very long. For example the Windows Registry mod that could extend MV2 availability will cease to function after Chromium version 151. Here is a rundown of the changes coming in the final such releases of Chromium releases: Chromium 150 lost ExtensionManifestV2Disabled option Chromium 151 will loose ExtensionManifestV2Unsupported option Chromium 151 will loose ExtensionManifestV2Availability option Chromium 151 will likely loose AllowLegacyMV2Extensions option Other Chromium-based browsers like Opera and Microsoft Edge could soon follow suit too. Although it is not specified, Edge began disabling uBlock Origin back in February, and Opera could also stop the functioning of MV2 add-ons, even though it had committed to support MV2 for longer in October 2024. uBlock Origin developer Raymond Hill (gorhill) apparently stated the following: "For Opera I did submit 1.70.0 rather late, but this was weeks ago. A while ago I received an email from Opera that they plan to abandon MV2-based extension so maybe they are no longer allocating resources for reviewing such extensions." The email which developers like Gorhill mentions was received from Opera last year. Here is what it seemingly said: Hence for now the only Chromium browser that seems to be on-board fully with MV2 support is Brave, and perhaps Vivaldi as well. Meanwhile if you want to ditch Chromium browsers entirely then Mozilla Firefox is an excellent alternative as MV3 and MV2 are both supported. Of course the easiest solution is to switch to uBlock Origin Lite if you want to remain on Chrome, as it is MV3-based, but from our experience, uBO Lite does not seem to be as good as the original non-Lite version. Source: w3C (GitHub repo) As an online publication, Neowin too relies on ads for operating costs and, if you use an ad blocker, we'd appreciate being whitelisted. In addition, we have an ad-free subscription for $28 a year, which is another way to show support!
    • Write to your MP 😄 Like believing in Santa. Total surveillance IS the goal. Wake up.
  • Recent Achievements

    • One Month Later
      mobmobiles earned a badge
      One Month Later
    • Very Popular
      Captain_Eric earned a badge
      Very Popular
    • One Month Later
      amusc earned a badge
      One Month Later
    • One Month Later
      DJC50PLUS earned a badge
      One Month Later
    • Week One Done
      DJC50PLUS earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      510
    2. 2
      PsYcHoKiLLa
      219
    3. 3
      ATLien_0
      92
    4. 4
      +Edouard
      90
    5. 5
      Steven P.
      82
  • Tell a friend

    Love Neowin? Tell a friend!