Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Active tab takes all available memory and then crashes

  • 3 ŋuɖoɖowo
  • 1 masɔmasɔ sia le esi
  • 2 views
  • Nuɖoɖo mlɔetɔ jonzn4SUSE

more options

Greetings. I've got a problem which is ocсuring in firefox. I'm starting js script on the web page which creating some canvas elements and saving them as PNG files (do no add them into DOM). All created objects are changing their values to null after save to make them unreachable for GC. During this process Firefox is taking all available memory (it is not much, only 4 GB installed and around 3 Gb free) and then crashing with "out of memory" exception. I opened about:memory and clicked on the "Minimize memory usage" button. It took effect. GC freed unused memory and the script continuing working for some time. Then I had to minimize again. And again... till the end of script running.

But if I switch to another tab after starting the script (the tab with running script became inactive), memory consumption is not growing and limited about 100 MB. That is exactly what I need.

So, looks like GC is not working on active tab or working but not absolutely correctly. But it is working properly on inactive tab. I hope there are some preferences in firefox (about:config ? ) which can help me to solve this problem.

P.S. I've tried the same in chrome. It works fine. So, I believe then script is more or less correct. P.P.S. Sorry for my English. It is not my native language.

Greetings. I've got a problem which is ocсuring in firefox. I'm starting js script on the web page which creating some canvas elements and saving them as PNG files (do no add them into DOM). All created objects are changing their values to null after save to make them unreachable for GC. During this process Firefox is taking all available memory (it is not much, only 4 GB installed and around 3 Gb free) and then crashing with "out of memory" exception. I opened about:memory and clicked on the "Minimize memory usage" button. It took effect. GC freed unused memory and the script continuing working for some time. Then I had to minimize again. And again... till the end of script running. But if I switch to another tab after starting the script (the tab with running script became inactive), memory consumption is not growing and limited about 100 MB. That is exactly what I need. So, looks like GC is not working on active tab or working but not absolutely correctly. But it is working properly on inactive tab. I hope there are some preferences in firefox (about:config ? ) which can help me to solve this problem. P.S. I've tried the same in chrome. It works fine. So, I believe then script is more or less correct. P.P.S. Sorry for my English. It is not my native language.

All Replies (3)

more options

Is there a reason for the old version of Firefox? I would use Firefox from Mozilla and see if you have the same issues. https://www.mozilla.org/en-US/firefox/all/#product-desktop-release

What distro are you using?

Also look at that strace example you can try from this issue. https://support.mozilla.org/en-US/questions/1366660

jonzn4SUSE trɔe

more options

Thank you your replay. I didn't expect it so soon.

I'm not privileged user on the client system. So, I can't run strace. On my developing station installed 16 GB of RAM and no problem with the script.

On the client system (4 GB of RAM) I tried two versions of firefox: 72 (installed from repository). It is debian-based distro made in company. When I've got this problem, I've decided to try newer version of firefox. I downloaded firefox 96.0.3 from mozilla web site. No success. The same behavior.

I found some parameters related to GC in about:config, but I can't find description of them. My idea is to change some settings which are influencing to a moment when GC will start. I'm not sure that it is possible. But I hope it is.

more options

May the Schwartz be with you.  ;-)