1
votes

I have a plugin/activex built with Firebreath (don't know which version, I think at least 1.6 - if somebody tells me where to look I'll update here).

In IE8, but not in IE9 or Chrome, memory usage grows by several MB on each page refresh.

My suspicion is that this means I have a circular structure in javascript, which is also holding a reference to the plugin. Or to the DOM element that contains the plugin? We don't build anything 'big' in javascript, so my focus falls on the (several MBs of) DLLs that comprise the plugin. Is that a reasonable idea? What else might cause this and/or how do I debug it?

1
OK, wait a minute. You know how when you explain a bug to somebody, about 2/3 of the way through you go "Oh! Wait a minute..."Spike0xff
So if I add javascript to remove the DOM element that holds the plugin, and to null out my other reference to it... then and only then does IE8 call my shutdown() method, and destroy the plugin object. And then the memory creep is much less, weirdly variable but at most 100KB average, instead of 1-2MB.Spike0xff
As to where to look it depends on how you got it; if you got it from git, the commit hash is useful. If you downloaded the tarball or zip there is a version file in the root with that commit hash in it.taxilian

1 Answers

1
votes

Usually this is a circular reference inside your plugin; not in the javascript, but in your c++ code. There may be a bug that has crept up, though, that is causing this issue. Try the latest from github (master branch) and see if there is a change.