Huge memory leak in Firefox!
When I loaded the volcano example in my Firefox 128.0.3 browser, the RAM spiked heavily, as the website now uses several GIGABYTES of RAM!
=> Unusable!
While writing this, RAM usage increased to 6 GB for a moment! There’s a memory leak for sure!
By the way, I also use uMatrix.
Screenshot
Leftmost yellow spike in the graph is when I loaded the page.
These errors appear in the browser console during the 6 GB RAM spike (notice the JSON data being over a billion characters long):
20:02:53.123 Error: JSON.parse: expected ',' or ']' after array element at line 1 column 1073629993 of the JSON data
Y@https://sqid.toolforge.org/app/dist.min.js:736:24726
St@https://sqid.toolforge.org/app/dist.min.js:737:30555
Pt/<@https://sqid.toolforge.org/app/dist.min.js:737:31024
s@https://sqid.toolforge.org/app/dist.min.js:736:19550
Pt@https://sqid.toolforge.org/app/dist.min.js:737:31006
a@https://sqid.toolforge.org/app/dist.min.js:737:31733
o@https://sqid.toolforge.org/app/dist.min.js:738:18667
yi/l/<@https://sqid.toolforge.org/app/dist.min.js:738:18840
$eval@https://sqid.toolforge.org/app/dist.min.js:738:26340
$digest@https://sqid.toolforge.org/app/dist.min.js:738:24848
$apply@https://sqid.toolforge.org/app/dist.min.js:738:26623
s@https://sqid.toolforge.org/app/dist.min.js:738:1500
g@https://sqid.toolforge.org/app/dist.min.js:738:3549
At/</w.onload@https://sqid.toolforge.org/app/dist.min.js:738:4092
EventHandlerNonNull*At/<@https://sqid.toolforge.org/app/dist.min.js:738:3929
m@https://sqid.toolforge.org/app/dist.min.js:738:2218
u@https://sqid.toolforge.org/app/dist.min.js:738:861
o@https://sqid.toolforge.org/app/dist.min.js:738:18667
yi/l/<@https://sqid.toolforge.org/app/dist.min.js:738:18840
$eval@https://sqid.toolforge.org/app/dist.min.js:738:26340
$digest@https://sqid.toolforge.org/app/dist.min.js:738:24848
$apply@https://sqid.toolforge.org/app/dist.min.js:738:26623
s@https://sqid.toolforge.org/app/dist.min.js:738:1500
g@https://sqid.toolforge.org/app/dist.min.js:738:3549
At/</w.onload@https://sqid.toolforge.org/app/dist.min.js:738:4092
EventHandlerNonNull*At/<@https://sqid.toolforge.org/app/dist.min.js:738:3929
m@https://sqid.toolforge.org/app/dist.min.js:738:2218
u@https://sqid.toolforge.org/app/dist.min.js:738:861
o@https://sqid.toolforge.org/app/dist.min.js:738:18667
yi/l/<@https://sqid.toolforge.org/app/dist.min.js:738:18840
$eval@https://sqid.toolforge.org/app/dist.min.js:738:26340
$digest@https://sqid.toolforge.org/app/dist.min.js:738:24848
$apply@https://sqid.toolforge.org/app/dist.min.js:738:26623
oe/a/<@https://sqid.toolforge.org/app/dist.min.js:736:26937
a@https://sqid.toolforge.org/app/dist.min.js:737:5251
a@https://sqid.toolforge.org/app/dist.min.js:736:26858
oe@https://sqid.toolforge.org/app/dist.min.js:736:27145
@https://sqid.toolforge.org/app/dist.min.js:790:17515
h@https://sqid.toolforge.org/app/dist.min.js:735:1168
add@https://sqid.toolforge.org/app/dist.min.js:735:1474
ready@https://sqid.toolforge.org/app/dist.min.js:734:10569
init@https://sqid.toolforge.org/app/dist.min.js:734:10131
re@https://sqid.toolforge.org/app/dist.min.js:734:9102
@https://sqid.toolforge.org/app/dist.min.js:790:17495
execCb@https://sqid.toolforge.org/lib/require.js:1693:33
check@https://sqid.toolforge.org/lib/require.js:881:51
enable@https://sqid.toolforge.org/lib/require.js:1173:22
init@https://sqid.toolforge.org/lib/require.js:786:26
newContext/makeRequire/localRequire/<@https://sqid.toolforge.org/lib/require.js:1457:36
setTimeout handler*req.nextTick<@https://sqid.toolforge.org/lib/require.js:1812:19
localRequire@https://sqid.toolforge.org/lib/require.js:1446:29
requirejs@https://sqid.toolforge.org/lib/require.js:1794:24
@https://sqid.toolforge.org/app/dist.min.js:790:17430
dist.min.js:738:11800
r https://sqid.toolforge.org/app/dist.min.js:738
get https://sqid.toolforge.org/app/dist.min.js:737
o https://sqid.toolforge.org/app/dist.min.js:738
l https://sqid.toolforge.org/app/dist.min.js:738
$eval https://sqid.toolforge.org/app/dist.min.js:738
$digest https://sqid.toolforge.org/app/dist.min.js:738
$apply https://sqid.toolforge.org/app/dist.min.js:738
s https://sqid.toolforge.org/app/dist.min.js:738
g https://sqid.toolforge.org/app/dist.min.js:738
onload https://sqid.toolforge.org/app/dist.min.js:738
(Async: EventHandlerNonNull)
At https://sqid.toolforge.org/app/dist.min.js:738
m https://sqid.toolforge.org/app/dist.min.js:738
u https://sqid.toolforge.org/app/dist.min.js:738
o https://sqid.toolforge.org/app/dist.min.js:738
l https://sqid.toolforge.org/app/dist.min.js:738
$eval https://sqid.toolforge.org/app/dist.min.js:738
$digest https://sqid.toolforge.org/app/dist.min.js:738
$apply https://sqid.toolforge.org/app/dist.min.js:738
s https://sqid.toolforge.org/app/dist.min.js:738
g https://sqid.toolforge.org/app/dist.min.js:738
onload https://sqid.toolforge.org/app/dist.min.js:738
(Async: EventHandlerNonNull)
At https://sqid.toolforge.org/app/dist.min.js:738
m https://sqid.toolforge.org/app/dist.min.js:738
u https://sqid.toolforge.org/app/dist.min.js:738
o https://sqid.toolforge.org/app/dist.min.js:738
l https://sqid.toolforge.org/app/dist.min.js:738
$eval https://sqid.toolforge.org/app/dist.min.js:738
$digest https://sqid.toolforge.org/app/dist.min.js:738
$apply https://sqid.toolforge.org/app/dist.min.js:738
a https://sqid.toolforge.org/app/dist.min.js:736
a https://sqid.toolforge.org/app/dist.min.js:737
a https://sqid.toolforge.org/app/dist.min.js:736
oe https://sqid.toolforge.org/app/dist.min.js:736
<anonym> https://sqid.toolforge.org/app/dist.min.js:790
h https://sqid.toolforge.org/app/dist.min.js:735
add https://sqid.toolforge.org/app/dist.min.js:735
ready https://sqid.toolforge.org/app/dist.min.js:734
init https://sqid.toolforge.org/app/dist.min.js:734
re https://sqid.toolforge.org/app/dist.min.js:734
<anonym> https://sqid.toolforge.org/app/dist.min.js:790
execCb https://sqid.toolforge.org/lib/require.js:1693
check https://sqid.toolforge.org/lib/require.js:881
enable https://sqid.toolforge.org/lib/require.js:1173
init https://sqid.toolforge.org/lib/require.js:786
localRequire https://sqid.toolforge.org/lib/require.js:1457
(Async: setTimeout handler)
nextTick https://sqid.toolforge.org/lib/require.js:1812
localRequire https://sqid.toolforge.org/lib/require.js:1446
requirejs https://sqid.toolforge.org/lib/require.js:1794
<anonym> https://sqid.toolforge.org/app/dist.min.js:790
followed by:
20:02:53.126 Broken interceptor detected: Config object not supplied in rejection:
https://github.com/chieffancypants/angular-loading-bar/pull/50 dist.min.js:738:11800
r https://sqid.toolforge.org/app/dist.min.js:738
responseError https://sqid.toolforge.org/app/dist.min.js:790
o https://sqid.toolforge.org/app/dist.min.js:738
l https://sqid.toolforge.org/app/dist.min.js:738
$eval https://sqid.toolforge.org/app/dist.min.js:738
$digest https://sqid.toolforge.org/app/dist.min.js:738
$apply https://sqid.toolforge.org/app/dist.min.js:738
s https://sqid.toolforge.org/app/dist.min.js:738
g https://sqid.toolforge.org/app/dist.min.js:738
onload https://sqid.toolforge.org/app/dist.min.js:738
(Async: EventHandlerNonNull)
At https://sqid.toolforge.org/app/dist.min.js:738
m https://sqid.toolforge.org/app/dist.min.js:738
u https://sqid.toolforge.org/app/dist.min.js:738
o https://sqid.toolforge.org/app/dist.min.js:738
l https://sqid.toolforge.org/app/dist.min.js:738
$eval https://sqid.toolforge.org/app/dist.min.js:738
$digest https://sqid.toolforge.org/app/dist.min.js:738
$apply https://sqid.toolforge.org/app/dist.min.js:738
s https://sqid.toolforge.org/app/dist.min.js:738
g https://sqid.toolforge.org/app/dist.min.js:738
onload https://sqid.toolforge.org/app/dist.min.js:738
(Async: EventHandlerNonNull)
At https://sqid.toolforge.org/app/dist.min.js:738
m https://sqid.toolforge.org/app/dist.min.js:738
u https://sqid.toolforge.org/app/dist.min.js:738
o https://sqid.toolforge.org/app/dist.min.js:738
l https://sqid.toolforge.org/app/dist.min.js:738
$eval https://sqid.toolforge.org/app/dist.min.js:738
$digest https://sqid.toolforge.org/app/dist.min.js:738
$apply https://sqid.toolforge.org/app/dist.min.js:738
a https://sqid.toolforge.org/app/dist.min.js:736
a https://sqid.toolforge.org/app/dist.min.js:737
a https://sqid.toolforge.org/app/dist.min.js:736
oe https://sqid.toolforge.org/app/dist.min.js:736
<anonym> https://sqid.toolforge.org/app/dist.min.js:790
h https://sqid.toolforge.org/app/dist.min.js:735
add https://sqid.toolforge.org/app/dist.min.js:735
ready https://sqid.toolforge.org/app/dist.min.js:734
init https://sqid.toolforge.org/app/dist.min.js:734
re https://sqid.toolforge.org/app/dist.min.js:734
<anonym> https://sqid.toolforge.org/app/dist.min.js:790
execCb https://sqid.toolforge.org/lib/require.js:1693
check https://sqid.toolforge.org/lib/require.js:881
enable https://sqid.toolforge.org/lib/require.js:1173
init https://sqid.toolforge.org/lib/require.js:786
localRequire https://sqid.toolforge.org/lib/require.js:1457
(Async: setTimeout handler)
nextTick https://sqid.toolforge.org/lib/require.js:1812
localRequire https://sqid.toolforge.org/lib/require.js:1446
requirejs https://sqid.toolforge.org/lib/require.js:1794
<anonym> https://sqid.toolforge.org/app/dist.min.js:790
While I know what the issue is, it'll require some architectural changes to fix. I've started working on something, but I'm already occupied with other projects for at least the next three weeks, so I wouldn't expect to have something ready before August.
Okay, I won’t use the tool until then.