How does chrome take 4 gb of ram? That is like 5 full movies.

256 views

How does chrome take 4 gb of ram? That is like 5 full movies.

In: Technology

There is a rule, called ~~Murphy’s~~ Moore’s law, that says that CPU power doubles every 18 months. A similar one can be said for everything technological, actually. Memory size, disk space, etc.

Unfortunately, there is another rule that can be said. Software gets more and more bloated with suboptimal libraries. Since computers are more powerful, it is less critical to be careful about resources. It’s relatively easy to have an application that works, it is much more difficult and costly to optimize it.

That is why, at the end of the day, the perceived efficiency of many applications has not improved as fast as the underlying hardware.

Every tab and extension in Chrome is divided into its own process, so if one crashes, it doesn’t take down the entire web page or all of your open tabs at once. This is much more convenient for you, but it may cause Chrome to consume more memory because it must replicate some operations for each tab.

Other things are going on behind the scenes as well. For example, Chrome’s prerendering functionality uses more RAM, but it speeds up the loading of your web pages. Additionally, certain extensions or websites may leak memory, resulting in increased RAM utilisation over time.

Speaking about the computer industry in general there has always been a balance between the cost of development time vs the price of hardware.

Back in the 80’s and early 90’s RAM was extremely expensive. A reasonable computer might only have a few kilobytes of RAM, up to several megabytes by the mid 90’s. The cost of storage (hard drives) has always been an order of magnitude cheaper.

To make software fit on a computer developers had to be very clever in finding ways to maintain efficiency in the code. Using what little RAM they had as effectively as possible.

Come the 2000’s and suddenly the paradigm shifted completely in the other direction. Computers now have several GB of RAM as standard so developers now spend more time on features and performance vs efficiency.

Computer programs today are also orders of magnitude more complex than in the 80’s. A developer axiom is “computer programmers are lazy”. What’s meant by that is don’t re-invent the wheel, if someone already made a wheel use that instead and save yourself some time. Pre-written code is called a library, instead of having to write code to perform a common function you can instead use code in a library to do it instead. But these libraries are often quite large when you only require 1 small part, or they weren’t particularly efficient in the first place. So developers have a tendency of loading all of these libraries in memory just in case they need one.

– The more you can load in RAM, the faster the browser will be. Every time you have to pull something from the hard drive it slows down your computer significantly

– Websites and browsers have massive inefficiencies in them. Memory leaks, extra libraries, redundant processes, and other crap that fills up RAM with time. Chrome doesn’t control what code is on a particular website either, that’s fault of that websites developer.

– Developer teams can’t be bothered to make it better because there isn’t enough time, current industry focus is on new features (more profits) rather than making existing code better.

– Extensive debugging time these days is more likely to be spent plugging security holes (playing security whack-a-mole) than making the underlying code better.

– Many Web developers are fundamentally multimedia experts and graphic designers. Many are self taught, most don’t have high end computer science degrees. This means that have very little understand of the underlying processes on a computer and make “pretty stuff that works” rather than “stuff that works extremely well”

– More often than not it’s “easier” to leave unnecessary libraries and crap in RAM in case you need it later, even if you aren’t using it now. RAM is too cheap these days for developers to care that much.

– Extra plugins and add-ons for your browser add to it’s workload, and they aren’t always super efficient at it.

– Computers these days rely heavily on computer languages like Java, PhP, HTML, C#, etc that don’t run code directly to the OS but instead run through an interpreter like the web browser. This has the advantage of making code multi-platform in that it will run as easily on PC as Mac or mobile devices. The problem with that is that they are inherently inefficient as a result because they add all these extra layers ontop of the OS to run. This in turn leads to more performance loss, and even sloppier code.

In my own opinion the industry has taken a really wrong turn in the past 10 years and hasn’t learned from its mistakes yet. The price we paid for adding under-powered and oversimplified mobile devices (smart phones and tablets) to our ecosystem is everything is now bloated, inefficient, and runs like crap.

Memory leak bugs in Chrome and/or your operating system (OS). When Chrome needs more memory, like when you open a new tab, it asks the OS for some. But later, when you close the tab, that memory is lost until the OS can safely make it accessible again. This can happen so often that large amounts of RAM are used by Chrome.

I notice Chrome has significant bugs with long tables. And Facebook Marketplace. Chrome had 28GB allocated in one instance. Never crashes, but can take a few minutes to clear things up.

Since the introduction of Javascript websites are not just content shown to you. Websites are full on programs – some of them very complex with thousands and thousands of lines of code that is run by your browser.

Look at Facebook – the website is an instant messenger program, a media player, an image viewer, a tracker (I’m sure a lot of the workings of the site are about tracking your interactions in minute detail), and a rich advertising program – and this is all running on your PC for every tab you have open. So you’re not just holding the content, you’re holding everything to make the website “program” run. Websites couldn’t be as dynamic and responsive as this if they were just rendering content.

One other part of the equation here is the classical balance of the amount of time a calculation takes versus the amount of space (storage or RAM) it consumes. For example, lets say I was making a program for checking spelling. I could save RAM by opening just one section of the dictionary and checking a given word against all the other words starting with letter. Loading and unloading that information for every word will take a bunch of computing and therefore a bunch of time, but a small amount of memory will be used. Alternatively, I could load every word in the dictionary into memory when the program starts. I could also use a data structure that consumes more computer memory with the trade-off of being able to lookup a word more easily. Now, a bunch of memory is consumed, but you can check a word nearly instantaneously! If you have the memory to spare, this is a good user experience.

poor coding. it doesn’t *need* to take 4gb, but it can, so it does. there’s no benefit for the devs to make the code fit into a smaller footprint.