samizdatco / arbor

a graph visualization library using web workers and jQuery
http://arborjs.org
2.66k stars 634 forks source link

Library turns FF and Chrome to almost ±1GB of RAM #7

Open niksumeiko opened 13 years ago

niksumeiko commented 13 years ago

I have trying to analyze the performance of the Library and found that it slows down the browser. Even my working computer is 4GB RAM powerful, I have noticed when running the library in FF3+, that Real Memory used turns up to ±1GB of the browser. It depends on the number and complicity of the nodes displayed. Sometimes FF growing up to 3GB of taken RAM and than, even my powerful machine, starts to go slow, but FF goes down completely and not responding.

I have made those tests on examples provided on arborjs.org websites and mines. When I was debugging, Javascript profiler shown that some of the functions in arbor library and arbor-graphics.js has been called almost million of times while I was just opening the graph and made some movements with the mouse.

Any toughs?

yee379 commented 13 years ago

+1, i was wondering why arbor was so slow on FF4; i've noticed that all the demo's (in particular the more complex ones) seem to push the memory usage at around 10MB/sec seemingly forever (it does plateau a little, but will subsequently begin to raise again) - which in turned leads to swapping sooner or later. memory leak?

performance on both nightly builds of chrome, and the newest safari seem fine.

yee379 commented 13 years ago

appears the firefox issue is known: https://bugzilla.mozilla.org/show_bug.cgi?id=617569

kevburnsjr commented 13 years ago

I've noticed something similar, and that it only appears to happen in halfviz and derivatives thereof. Here are some graphs (FFx 5.0):

1) On the left is my graph (13 nodes, 16 edges), on the right is halfviz. Graph 1

2) This is my graph set at 1 fps and 0.2 fps. Graph 2

Note that the memory builds to ~800mb, then deallocates. At 55 fps, the deallocation takes a long time cause the CPU is busy rendering the graph. At 0.2 fps, the deallocation is instantaneous. In any event, each frame appears to increase memory usage by 80Mb which is truly absurd.

kevburnsjr commented 13 years ago

One final (perplexing) note: if I have FireBug enabled, the graph is totally flat. No memory bloat.