Low memory full feature browsers  [Solved]

Message
Author
User avatar
Durhammer
Posts: 391
Joined: Tue Nov 24, 2020 9:07 pm

Low memory full feature browsers

#1 Post by Durhammer »

I had installed LibreWolf browser after a suggestion by @siamhie . It works great. I've been doing whatever I can to minimize RAM usage in this little HP Stream 13 notebook (2 GB RAM, non-extensible), so a lower memory browser was one thing to look for. Mind you, pretty much ANY decent browser uses a LOT of memory. I had tried light browsers like Midori, Slimjet, and others and they were really not acceptable for modern real-world browsing. I have used Chrome extensively, as well as dabbling with Brave, Chromium. LibreWolf, Firefox, WaterFox, Edge, Opera, Vivaldi, and Zen (and others!). Of these, I tried a number of tests to see which were the most suitable and used the least RAM. I tried to configure each pretty much the same as the way I would use them, including the two main extensions I would be using -- UBlock Origin and Bitwarden. I do use a couple of other extensions, but these two were essential. In reality, I prefer using the Adguard extension, due to the cosmetic removal of ads versus leaving the space they originally would have taken, but stuck with UBO (or UBO Lite) for the comparison. I almost left out UBO from Brave, because it has very extensive filtering built-in, but did add UBlock Origin Lite (full UBO was not offered).

I've been using LibreWolf for a while now, but have been disappointed when re-opening tabs that were marked as having "tab crash reaports". It's still a good browser, but both Brave browser (Chromium based) and Zen browser (Firefox based) give it a great run for the money. I do like the way Zen handles the screen, somewhat like Opera and Vivaldi, though it's kinda hard to get used to it. Zen is really cool, and Brave is fairly easy to get used to. In my testing for the stats that will be shown, I had the two extensions enabled (it would be good to do this again with Brave without the UBOL extension), with one tab loading the MX forums with "my" posts filtered, one tab with Google News headlines, and one New Tab. I'm impressed with the memory management of all three of these, but especially Brave. I used each browser in turn several times, took the memory usage reports in-between, left them all alone for a while, etc., and took memory reports. I wasn't thrilled that the only way to get the Zen browser was via flatpak, but it actually performs pretty well and looks great.

Here's the memory use over the time tested:

Code: Select all

157.0 MiB +  48.0 MiB = 205.1 MiB	brave (14)
190.8 MiB +  19.7 MiB = 210.5 MiB	zen (9)
251.2 MiB +  82.3 MiB = 333.5 MiB	librewolf (9)
=================================================
149.4 MiB +  37.1 MiB = 186.5 MiB	brave (15)
174.9 MiB +  33.5 MiB = 208.3 MiB	zen (10)
237.7 MiB +  26.5 MiB = 264.1 MiB	librewolf (7)
=================================================
149.4 MiB +  37.1 MiB = 186.5 MiB	brave (15)
174.9 MiB +  33.5 MiB = 208.3 MiB	zen (10)
237.7 MiB +  26.5 MiB = 264.1 MiB	librewolf (7)
=================================================
182.6 MiB +  15.7 MiB = 198.2 MiB	zen (8)
202.3 MiB +  33.1 MiB = 235.5 MiB	librewolf (7)
188.2 MiB +  61.3 MiB = 249.5 MiB	brave (15)
=================================================
170.9 MiB +  32.4 MiB = 203.2 MiB	zen (8)
201.5 MiB +  36.0 MiB = 237.6 MiB	librewolf (7)
188.4 MiB +  52.9 MiB = 241.3 MiB	brave (15)
=================================================
147.1 MiB +  33.6 MiB = 180.7 MiB	librewolf (7)
168.0 MiB +  34.1 MiB = 202.1 MiB	brave (15)
198.4 MiB +  29.9 MiB = 228.3 MiB	zen (6)
=================================================
162.5 MiB +  40.9 MiB = 203.4 MiB	brave (15)
235.2 MiB +  28.1 MiB = 263.3 MiB	zen (6)
231.9 MiB +  33.4 MiB = 265.3 MiB	librewolf (7)
=================================================
195.9 MiB +  47.9 MiB = 243.8 MiB	brave (15)
237.4 MiB +  30.3 MiB = 267.7 MiB	librewolf (7)
251.2 MiB +  27.7 MiB = 278.9 MiB	zen (6)
=================================================
147.5 MiB +  49.3 MiB = 196.8 MiB	brave (15)
242.4 MiB +  30.9 MiB = 273.3 MiB	librewolf (7)
298.0 MiB +  38.2 MiB = 336.2 MiB	zen (6)
I didn't calculate averages, but it seems pretty obvious that Brave has the lowest memory usage over the tests.

I'm not really sure what the numbers in parens are unless sub-processes. All three browsers were supposed to have the same loads, so not sure what they are. BTW, the MS Edge browser wasn't too bad, either, but I didn't care for the way it behaved on restart. Will be interested to see comments from any others who use any of these browsers.

Code: Select all

System:
  Kernel: 6.1.0-26-amd64 [6.1.112-1] arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1.0-26-amd64 root=UUID=<filter> ro quiet nosplash
    zswap.enabled=1 zswap.compressor=zstd zswap.zpool=zsmalloc zswap.max_pool_percent=40
    init=/lib/systemd/systemd
  Desktop: IceWM v: 3.3.1 info: tint2 vt: 7 dm: LightDM v: 1.26.0 Distro: MX-23.4_fluxbox_x64
    Libretto September 15 2024 base: Debian GNU/Linux 12 (bookworm)
Machine:
  Type: Laptop System: Hewlett-Packard product: HP Stream Notebook PC 13 v: Type1 - ProductConfigId
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: Hewlett-Packard model: 802A v: 56.12 serial: <superuser required> UEFI: Insyde v: F.14
    date: 08/25/2015
Battery:
  ID-1: BAT0 charge: 14.2 Wh (51.8%) condition: 27.4/27.4 Wh (100.0%) volts: 11.2 min: 11.4
    model: Hewlett-Packard Primary type: Li-ion serial: N/A status: discharging
CPU:
  Info: model: Intel Celeron N2840 bits: 64 type: MCP arch: Silvermont level: v2 built: 2013-15
    process: Intel 22nm family: 6 model-id: 0x37 (55) stepping: 8 microcode: 0x838
  Topology: cpus: 1x cores: 2 smt: <unsupported> cache: L1: 112 KiB desc: d-2x24 KiB; i-2x32 KiB
    L2: 1024 KiB desc: 1x1024 KiB
  Speed (MHz): avg: 583 min/max: 500/2582 scaling: driver: intel_cpufreq governor: ondemand
    cores: 1: 583 2: 583 bogomips: 8666
  Flags: ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds mitigation: Clear CPU buffers; SMT disabled
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data status: Unknown: No mitigations
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass status: Not affected
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW; STIBP: disabled; RSB
    filling; PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Atom Processor Z36xxx/Z37xxx Series Graphics & Display vendor: Hewlett-Packard
    driver: i915 v: kernel arch: Gen-7 process: Intel 22nm built: 2012-13 ports: active: eDP-1
    empty: DP-1,HDMI-A-1,VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0f31 class-ID: 0300
  Device-2: Chicony HP Truevision HD type: USB driver: uvcvideo bus-ID: 1-1:2 chip-ID: 04f2:b45e
    class-ID: 0e02
  Display: x11 server: X.Org v: 1.21.1.7 compositor: Picom v: 9.1 driver: X: loaded: modesetting
    unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99") s-diag: 414mm (16.31")
  Monitor-1: eDP-1 model: Seiko Epson 0x3859 built: 2012 res: 1366x768 hz: 60 dpi: 118 gamma: 1.2
    size: 293x165mm (11.54x6.5") diag: 336mm (13.2") ratio: 16:9 modes: 1366x768
  API: OpenGL v: 4.2 Mesa 22.3.6 renderer: Mesa Intel HD Graphics (BYT) direct-render: Yes
Audio:
  Device-1: Intel Atom Processor Z36xxx/Z37xxx Series High Definition Audio vendor: Hewlett-Packard
    driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:0f04 class-ID: 0403
  API: ALSA v: k6.1.0-26-amd64 status: kernel-api tools: alsamixer,amixer
  Server-1: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Broadcom BCM43142 802.11b/g/n vendor: Hewlett-Packard driver: wl v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 14e4:4365 class-ID: 0280
  IF: wlan0 state: up mac: <filter>
Bluetooth:
  Device-1: Broadcom BCM43142A0 Bluetooth Device type: USB driver: btusb v: 0.8 bus-ID: 1-4.3:4
    chip-ID: 0a5c:216c class-ID: fe01 serial: <filter>
  Report: hciconfig ID: hci0 rfk-id: 1 state: up address: <filter> bt-v: 2.1 lmp-v: 4.0
    sub-v: 210b hci-v: 4.0 rev: 148
  Info: acl-mtu: 1021:8 sco-mtu: 64:1 link-policy: rswitch hold sniff
    link-mode: peripheral accept service-classes: rendering, capturing, audio, telephony
Drives:
  Local Storage: total: 29.12 GiB used: 15.97 GiB (54.8%)
  ID-1: /dev/mmcblk0 maj-min: 179:0 vendor: SK Hynix model: HBG4e size: 29.12 GiB block-size:
    physical: 512 B logical: 512 B type: SSD serial: <filter> rev: 0x7 scheme: MBR
  SMART Message: Unknown smartctl error. Unable to generate data.
Partition:
  ID-1: / raw-size: 28.87 GiB size: 28.25 GiB (97.85%) used: 15.97 GiB (56.5%) fs: ext4
    dev: /dev/mmcblk0p2 maj-min: 179:2
  ID-2: /boot/efi raw-size: 256 MiB size: 252 MiB (98.46%) used: 274 KiB (0.1%) fs: vfat
    dev: /dev/mmcblk0p1 maj-min: 179:1
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: file size: 3 GiB used: 1.52 GiB (50.7%) priority: -2 file: /swap/swap
Sensors:
  System Temperatures: cpu: 44.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Repos:
  Packages: 2018 pm: dpkg pkgs: 2008 libs: 995 tools: apt,apt-get,aptitude,nala,synaptic pm: rpm
    pkgs: 0 pm: flatpak pkgs: 10
  No active apt repos in: /etc/apt/sources.list
  Active apt repos in: /etc/apt/sources.list.d/brave-browser-release.list
    1: deb [arch=amd64 signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main
  Active apt repos in: /etc/apt/sources.list.d/debian-stable-updates.list
    1: deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/debian.list
    1: deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
    2: deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/mx.list
    1: deb http://mirror.math.princeton.edu/pub/mxlinux/mx/repo/ bookworm main non-free
  Active apt repos in: /etc/apt/sources.list.d/extrepo_librewolf.sources
    1: deb [arch=amd64 arm64] https://repo.librewolf.net librewolf main
Info:
  Processes: 225 Uptime: 2d 6h 44m wakeups: 1 Memory: 1.81 GiB used: 1.55 GiB (85.5%) Init: systemd
  v: 252 target: graphical (5) default: graphical tool: systemctl Compilers: gcc: 12.2.0 alt: 12
  Client: shell wrapper v: 5.2.15-release inxi: 3.3.26
Boot Mode: UEFI

User avatar
Durhammer
Posts: 391
Joined: Tue Nov 24, 2020 9:07 pm

Re: Low memory full feature browsers

#2 Post by Durhammer »

What the heck, averaged out the 8 unique test results.

Brave -- 193.3 MB
Zen -- 240.9 MB
LibreWolf -- 257.2 MB

lars_the_bear
Posts: 60
Joined: Wed Oct 02, 2024 3:40 am

Re: Low memory full feature browsers

#3 Post by lars_the_bear »

I also am interested in low-memory browsers. I don't need a browser that will work with 100% of websites, just 100% of the ones I use ;)

But my search is complicated by the fact that 'memory used by an application' is a really slippery concept in Linux. How did you arrive at the memory figures that you showed? When we have an application that is made up of multiple processes, each with multiple threads, each of which has some uniquely-reserved memory and some shared memory, I'm not even sure how to define memory usage, let alone measure it.

If I just sum the 'RSS' figure reported by top for all the firefox/librewolf processes, I end up with a figure in excess of 1Gb, even when looking at a single text page. Of course, that doesn't tell me how much of that memory is shared between processes.

BR, Lars

User avatar
Durhammer
Posts: 391
Joined: Tue Nov 24, 2020 9:07 pm

Re: Low memory full feature browsers

#4 Post by Durhammer »

lars_the_bear wrote: Fri Oct 11, 2024 3:48 am I also am interested in low-memory browsers. I don't need a browser that will work with 100% of websites, just 100% of the ones I use ;)

But my search is complicated by the fact that 'memory used by an application' is a really slippery concept in Linux. How did you arrive at the memory figures that you showed? When we have an application that is made up of multiple processes, each with multiple threads, each of which has some uniquely-reserved memory and some shared memory, I'm not even sure how to define memory usage, let alone measure it.

If I just sum the 'RSS' figure reported by top for all the firefox/librewolf processes, I end up with a figure in excess of 1Gb, even when looking at a single text page. Of course, that doesn't tell me how much of that memory is shared between processes.

BR, Lars
Ah, sorry Lars. I forgot to mention that the figures came from the output of the ps_mem.py application (which needs to run as root, so via sudo). It does what you want it to do, summarize all the processes for a given application. And yes, there is a "slippery" calculation of memory usage due to shared memory and so forth. You can read more about it here.

User avatar
Adrian
Developer
Posts: 9274
Joined: Wed Jul 12, 2006 1:42 am

Re: Low memory full feature browsers

#5 Post by Adrian »

I wonder what that ps_mem.py reports at "shared" if anything why would you add it to the total used by an app since that's I assume libraries shared with other applications.

I'm surprised to see Brave so light. By the way you have to keep in mind that you might not even compare apples with apples if you have extensions installed those have their own process and RAM usage.

User avatar
DukeComposed
Posts: 1516
Joined: Thu Mar 16, 2023 1:57 pm

Re: Low memory full feature browsers

#6 Post by DukeComposed »

Adrian wrote: Fri Oct 11, 2024 4:11 pm I wonder what that ps_mem.py reports at "shared" if anything why would you add it to the total used by an app since that's I assume libraries shared with other applications.
"How much memory does X use?" is one of those seemingly simple questions one asks and the reality of the answer often ends up being so complex and nuanced that young and naive people alike think you're mad for saying it's hard to answer. If multiple resources are using a block of shared memory, do you count that for one application or for all of them? It becomes even more complicated when dealing with versatile applications like browsers which will consume more resources when you, say, are streaming multiple concurrent video sources across a dozen tabs than when you're say, just loading a static page like lite.cnn.com.

In general, the spirit of the question is "If I run X, how much DRAM is it going to consume?" The simplest way to measure this is to set up a machine with nothing else, measure the amount of free memory, then run the application and measure the amount of free memory again. Close the application, and measure again. Write this down, then restart the machine and do it again a few thousand times to prevent outliers. This will establish a general idea of how much DRAM that application uses by roughly telling you how much less DRAM you have available for other things while you're running X.

Unless you want to run the application through a debugger and literally count how many times it calls mmap(), it's a faster, easier way to assemble a benchmark. Anyone can do it and it's hard to argue that the method isn't practical.

User avatar
Durhammer
Posts: 391
Joined: Tue Nov 24, 2020 9:07 pm

Re: Low memory full feature browsers

#7 Post by Durhammer »

Adrian wrote: Fri Oct 11, 2024 4:11 pm I wonder what that ps_mem.py reports at "shared" if anything why would you add it to the total used by an app since that's I assume libraries shared with other applications.

I'm surprised to see Brave so light. By the way you have to keep in mind that you might not even compare apples with apples if you have extensions installed those have their own process and RAM usage.
I sorta assumed that might be inter-process communication memory, but I dunno. Supposedly ps_mem.py is quite (or fairly) accurate.

As I stated at the top, my tests were done with consistency in mind. I tried to have the same two (and only two) extensions added to each browser, although one did not offer UBlock Origin, only the Lite version. I also did my best to open the same three articles (plus one new tab). As I ran and re-ran the ps_mem command while the browsers weren't being asked to do anything else, I could see what I figured was some freeing of memory for inactive tabs that many browsers sport now. Brave and LibreWolf seemed to be the best at this; Chrome was horrible.

In no way should this be considered a scientific study, but I think I did pretty well to make it as consistent as I could.

I had used Brave browser before, and for some reason stopped using it (might have been the fact that it's almost TOO strict in its blocking -- for example, I have to "lower its 'shields'" just to be able to log on to this forum). And I was also quite surprised at Brave's performance. It also seems to have done well in a speed comparison with other browsers (don't have the URL on me right now), not the fastest but fairly high in the list. That also piqued my interest, so I'm slowly adding more and more of my regular browsing/bill paying/etc. chores using Brave. I'll be dumping Chrome. I'm also considering seeing just how good Brave's built-in filtering is, and try it without UBO. Not having the added memory of that extension would only raise it (Brave) up in my estimation. And not to forget, the tests were done on my highly constrained (2 GB RAM, non-expandable) HP Stream 13 notebook, to find the lightest current browser I could.

User avatar
rokytnji.1
Global Moderator
Posts: 839
Joined: Sun Apr 13, 2014 9:06 pm

Re: Low memory full feature browsers

#8 Post by rokytnji.1 »

Latest Seamonkey runs good on my atom clam shell atom n270 intel notebook. I run 32 bit on it.

I installed mine through package installer. Not synaptic or apt.

https://www.antixforum.com/forums/topic ... ost-155746

It comes with a lot of functions.

User avatar
Durhammer
Posts: 391
Joined: Tue Nov 24, 2020 9:07 pm

Re: Low memory full feature browsers

#9 Post by Durhammer »

rokytnji.1 wrote: Fri Oct 11, 2024 6:26 pm Latest Seamonkey runs good on my atom clam shell atom n270 intel notebook. I run 32 bit on it.

I installed mine through package installer. Not synaptic or apt.

https://www.antixforum.com/forums/topic ... ost-155746

It comes with a lot of functions.
Thanks, Roky! I've installed it and started it. Um, not the prettiest face to the world. ;) Wasn't looking for anything more than a good browser that at least had UBO ( :thumbup: ) as well as Bitwarden password manager ( :frown: ) extensions. One out of two ain't bad, but it does mean I'll have to have Bitwarden available somehow elsewhere (they do have a native Linux app, I believe).

I wasn't expecting, nor needing the email client stuff, but it still took off setting that up. I imagine that the email, calendar, RSS, and chat functions take up some room in the program (thus resident RAM). True? If so, is there any way to get rid of that excess baggage? It certainly seems to take up less memory right now than does Brave. I'll put it on the Stream 13 shortly and see how it does there. In any case, thanks for pointing me to this one!

User avatar
siamhie
Global Moderator
Posts: 3855
Joined: Fri Aug 20, 2021 5:45 pm

Re: Low memory full feature browsers

#10 Post by siamhie »

Durhammer wrote: Fri Oct 11, 2024 10:12 pm Bitwarden password manager ( :frown: ) extensions.
Bitwarden Password Manager extension for Firefox. https://addons.mozilla.org/en-US/firefo ... d-manager/
This is my Fluxbox . There are many others like it, but this one is mine. My Fluxbox is my best friend. It is my life.
I must master it as I must master my life. Without me, my Fluxbox is useless. Without my Fluxbox, I am useless.

Post Reply

Return to “Chat”