I have a customer message with 1100 addresses and tons of other small block data that takes 9.5 minutes to parse, but after optimizing both this module and OLE::Storage_lite (PR created for that project too), the time is down to < 4 seconds
There are a few fixes here
1) eliminate linear address scan and use hash lookup instead
2) cache the utf16 decoder as looking up every time is slow
3) optimize methods called countless times - I had one at 4 billion calls!
I have a customer message with 1100 addresses and tons of other small block data that takes 9.5 minutes to parse, but after optimizing both this module and OLE::Storage_lite (PR created for that project too), the time is down to < 4 seconds There are a few fixes here 1) eliminate linear address scan and use hash lookup instead 2) cache the utf16 decoder as looking up every time is slow 3) optimize methods called countless times - I had one at 4 billion calls!