Why doesn't the "Memory Saver" function work?

I use Brave Nightly on a daily basis, and I have never had a problem with a feature that is yet to be implemented, or, previously implemented. But for a while now (about 3 weeks) I haven’t seen open Tabs that I don’t use get suspended. It happens the same in Brave Browser Stable Version.


Description of the issue:
How can this issue be reproduced?

  1. Suspend tabs does not work
  2. Flag of Discard does not appear.
  3. They only go into suspension when I go to brave://discards/ and suspend them.

Expected result:
The memory saver does not work

Brave Version( check About Brave):
1.54.65 Chromium: 114.0.5735.133 (Build oficial) nightly (64 bits)

Additional Information:
I recently changed to a new more powerful PC with Windows 10, and sometimes the memory usage is excessive, something that was already present in the old PC, but it was understandable since it has a lousy processor and 2 GB RAM, now it is not so noticeable, but it alarms me a little considering that it is only a little more, considerably, powerful than the old one.

Well, it works, the problem is you don’t understand how it works now.
Chromium changed it, it doesn’t just discard tabs after 1 hour (by default) and done, that was terrible, just discarding for discarding not even caring what it was in the page.

Also, If you have a powerful PC… why do you even care about memory saver? if you don’t use RAM, you are wasting RAM, you want programs to use more RAM, not less. Unless you are at 90% you shouldn’t even care about Memory.
Chromium already does a lot of backgrounding of tabs and processes, so they will use less CPU if you are not using the tabs, which you might care more than RAM.

But that logic is exactly why (I think) Chromium team changed it.

Brave should have a flag brave://flags/#heuristic-memory-saver-mode

and you can see it doesn’t have time anymore, like before where it said 30seconds, 2minutes, 1 hour, 4 hours… (terrible times anyway).

Now it is Aggressive, Balanced and Conservative.

Now it uses two logics to Memory save a tab, and not just time, first a threshold for the memory, and then the time.
It can easy be seen in Chromium code what they mean, but basically, Aggressive 30/30, Balanced 15/60, and Conservative 5/120.

The comments in Chromium Source code pretty much explain what the threshold means

Threshold

The amount of available physical memory at which HeuristicMemorySaverPolicy will start discarding tabs. The amount of available memory must be such that it’s both lower than the “Percent” param when expressed as a % of total installed physical memory and lower than the “Mb” threshold.

For example, if the params are set as: - kHeuristicMemorySaverAvailableMemoryThresholdPercent to 20% - kHeuristicMemorySaverAvailableMemoryThresholdMb to 2048

A device with 8Gb of installed RAM, 1Gb of which is available is under the threshold and will discard tabs (12.5% available and 1Gb < 2048Mb)

A device with 16Gb of installed RAM, 3Gb of which are available is under the percentage threshold but will not discard tabs because it’s above the absolute Mb threshold (18.75% available, but 3Gb > 2048Mb)

If your read it, you will understand that, Balance, which is the default, will only start discarding tabs until you have 15% memory available, not before that, and the tabs should have been 1 hour idle in the background.

Aggressive means your computer have gone above 70%+ of memory usage and then tabs have been 30 minutes in the background.

That’s why your powerful computer will not discard anything, it’s not necessary. discarding a tab will only completely remove it as a process and all, but that means you will refresh the page one you visit it again, they are not being put to sleep like Edge does.

If you want to test it, you can start Brave with --enable-features=HeuristicMemorySaver:threshold_percent/90/minimum_minutes_in_background/1

That means you will be using more than 10% memory and after 1 minute, tabs should get discarded, SOME tabs don’t get discarded immediately. And they only work by minutes, in the past you could add the switch and set it to ms, s, m, and h. but not anymore, only minutes.

Depending on some tabs, they should get discarded, some tabs will not get discarded.

I use Nightly, but Stable and Nightly are on Chromium 114, so it should be the same change for both. There is even the flag brave://flags/#memory-saver-savings-reporting-improvements, because I don’t know if the memory saver messages will appear without it.

1 Like

Thanks to your help I was able to get the function that had been removed, now it is better, although it confuses me a little so many Flags to simply suspend tabs. I will take this as a solution, it only remains to test the Flags to see.

I was going to post that latest Nightly with Chromium 115 improved it.

brave://flags/#memory-saver-multi-state-mode

is the one you have to enable, that will enable a new UI in Performance Settings

The Brave decides when a tab becomes inactive is the current default Heuristic mode which I explained in my comment with the threshold.

Select when your tabs become inactive is the one you want, since it will discard tabs only taking into account the time which can be set as you can see.

brave://flags/#heuristic-memory-saver-mode is still needed if you want to change Heuristic mode to aggressive or conservative.

brave://flags/#high-efficiency-mode-time-before-discard

This flag only works if the multi-mode is enabled, you can set the timer to 1 minute from the drop down, which will show as ‘custom’ in Settings.
The important thing about that flag is that the new way to set a custom timer (in minutes) is by using --time-before-discard-in-minutes= and then a number in minutes, but since we have 5, 15, 30 minutes, then it is better than before when it was like 30 seconds, 2 minutes and then jumped 1 hour, but if you want 10 minutes, you can get them.

Also, to make it work, don’t set the timer it in the Settings UI, if not Browser will write "time_before_discard_in_minutes": in Local State file that will override the flag. And only removing that line in Local State file will make the flag be respected.

brave://flags/#memory-saver-discard-exceptions-improvements

This flag adds a button in the omnibox reporting button to add an exclusion without going to Settings and manually type it.

brave://flags/#memory-saver-savings-reporting-improvements

This makes the popup for memory report nicer with a graphic like a meter of memory saved and just a better look than what it was before.

image

brave://flags/#memory-saver-discarded-tab-treatment

This one fades the discarded tabs’ favicons, and can customize it by just fading it by % or even adding a ring to it.
30% image image

40% image image

50% image image

So now the experience should be better and more improved and customizable.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.