ever since the release of 1.5.x there have been several complaints about memory leaks in kmeleon, unfortunately triggering a war of flaming words between developers/support providers and users with those concerns.
the developers naturally test the browser in its default or nearly default settings, the users have certain extensions installed which will not be installed by default. the developers finding no fault in memory management discarded such complaints, the users could not accept that since they had valid reports about memory leaks
both are right..there is no memory leak in kmeleon and users with the adblockplus extension will suffer from a memory leak.
the culprit here is the abp k-plugin library 'adblockplus.dll'. after several tests i can confirm this bug in the dll.
the leak is not triggered right away but it takes at least half an hour till it becomes noticeable. users complained that this leak did not exist in 1.1.x which confused everybody and sent the testers on the wrong path trying to figure where the problem lies..since the major change in 1.5.x was the adaptation of true tabs so no one suspected it could be a 3rd party plugin esecially that abp was available for 1.1.x and no one complained then about a leak.
the leak is persistent on both versions, however it is has more dramatic effects on 1.5.x in particular for those reasons:
1- intially 1.5.x memory usage is slightly more than 1.1.x, this causes the leak to have more significant affect after a long usage.
2- the layers in 1.1.x ensured that the leak was somewhat under control since every layer had own process limiting the leak for each layer(tab) separately. once that layer was closed the leak was terminated for that layer.
3- the leak becomes disastrous in true tabs since it overrides kmeleon memory management meaning when a tab was closed, the normal management for releasing ram when a tab was closed was halted as the plugin overrides the normal management which what was reported by newuser: http://kmeleon.sourceforge.net/forum/read.php?3,106832
tests for this bug were executed with 1.5.x with and without adp and 1.1.x with and without adp with 1 and 2 tabs/layers for a duartion of 1 hour, 2 hours and overnight(approx 11 hours)
this is the conclusive test showing the memory leak
the first kmeleon instance is 1.5.4 with the adp plugin disabled
the second instance is 1.1.4 with adp plugin enabled
the third instance is 1.5.4 with adp plugin enabled
the test was initiated before the kick off (portugal vs ivory coast), with 2 tabs open for all 3 browsers with the exact websites(kmeleon home and kmeleon forum)..no js or np plugin invoked(normal browsing) and while kmeleon is idling
the second snapshot is taken during half-time(45 minutes)
this was taken 70 minutes into the match
this was taken after the match has ended
the final snapshot was taken 30 minutes after the match(assuming they had to play an extra time)
it's obvious that the memory without adp plugin is constant. with the plugin the memory increases in small bits (20-40kb) every couple of seconds. the accumulating ram is insignificant and hardly noticeable if you use the browser for brief sessions but those little bits increase exponentially with time..meaning after 2 hours the memory usage becomes unacceptable. the unchanged virtual memory is a clear indicator of the leak.
the leak in itself is not severe at least at startup but it's a bad leak especially for a browser like kmeleon where memory handling is a strong and major 'selling' point. but we can't blame the developers because it isn't a browser bug and only official k-plugins are supported and even if, this is clearly a memory leak at os level not at browser level.. nor can we blame palant because he wasn't given feedback about it and he isn't an everyday kmeleon user so he couldn't have found it out. i'm not sure if palant will develop abp for 1.6, he seems reluctant to support kmeleon but just in case he should be notified because the same plugin(with the same bug) can be used and compiled unicodely for 1.6 causing the same problem.
for now, users are strongly advised to disable the abp k-plugin in kmeleon preferences>k-plugins..this will not prevent the extension from working..all ads will be blocked as normal and all your subscriptions will work as usual since the chrome and component parts of adp are responsible for eventlistening/blocking ads and not the k-plugin
what the k-plugin affects is the context menu entries (adblock image/adblock frame) and the status bar icon indicator. the plugin is also responsible for opening the subscriptions page when it's installed for the first time.
the adp extension on kmext has been updated so the k-plugin is disabled by default and this is now the recommended setting for this extension..it's the user choice to enable the plugin if they wish for the addiitonal features which i think are not that essential and trivial compared to what could be prevented..i will try to work on a macro that adds adblock image/frame menu commands and link them directly to the compose.xul without the need for the k-plugin
special thanks to newuser and eugene miele for reporting and persistence
Edited 1 time(s). Last edit at 06/15/2010 05:55PM by disrupted.