Ethereal-dev: [Ethereal-dev] Danger: Performance boost and instability introduced
Based on didiers previous patch submission a month or so ago, i have
checked in a changed version that goes a bit further than what the
original patch did.
The original patch was likely very safe and very stable.
All crashes in the new patch is all my fault and not didier's.
I modified the patch to be much more unsafe and aggressive in
perforamcne enhancements with the result that some dissectors such as
NetWare (is fixed now) crashed.
Reason for crashes were that dissectors were walking the edt tree and
manually parsing the tree. The patch makes the tree significantly
smaller since it tries to skip generation of tree items completely
unless some filter will reference it or the tree is to be displayed
(is visible).
The tree changes some properties of the tree and code that made
assumptions that the tree (which should be hidden from dissectors and
taps anyway) were always complete.
This is no longer true and can cause instability.
The patch does however provide significant performance boosts for
large captures, so I feel it will be worth it in the long run.
I fear there will be instability in the short term but it needs wider
exposure and testing.
There is an #if in epan/proto.c which can disable the dangerous parts
of the patch (the optimization)
Performance boost I have seen in standard GByte captures I work with
is filtering taking on average half or less than half the time
compared to no patch.
Please forgive me for all stability problems this will introduce short term.
(but very few people tested it during the last month or gave feedback)
Please report any instabilities from this patch so i can fix them asap.