ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
April 17th, 2024 | 14:30-16:00 SGT (UTC+8) | Online

Wireshark-dev: [Wireshark-dev] How to improve LUA dissector performance?

From: David Aldrich <david.aldrich.ntml@xxxxxxxxx>
Date: Thu, 4 Apr 2019 13:46:42 +0100
Hi
I have written a LUA dissector that analyses large packets that consist of control information and  IQ data (complex numbers).  Until recently I displayed the IQ data as a string and performance was fine. However, I now dissect and display each IQ value and the user has complained of very slow performance when analysing a large capture set of packets.

I imagined that dissection of the IQ data would only occur when the tree was expanded to display that data.  The reported slowness suggests that the data for all packets is always dissected regardless of whether or not the data is viewed. Is that correct?

Apart from re-coding as a C++ dissector (a lot of work) how could I optimise the current LUA code?

Could I add a switch to control whether or not IQ data is dissected?

Best regards

David