On Nov 11, 2017, at 8:05 AM, João Valverde <joao.valverde@xxxxxxxxxxxxxxxxxx> wrote:
> On 11-11-2017 15:21, Pascal Quantin wrote:
>
>> When looking at the -dev mailing list history, some people were (are?) still building Wireshark without zlib (see for example the thread starting here: https://www.wireshark.org/lists/wireshark-dev/201209/msg00187.html or the fact that people once in a while upload patches to fix build without zlib).
>
> The question would be why. That message mentions Wireshark is much faster when built without zlib,
To be precise, that message, sent in 2012, said "*At one stage*, building without zlib support meant that opening/reading files was much faster than with." - emphasis mine.
Jakub Zawadzki's followup:
https://www.wireshark.org/lists/wireshark-dev/201209/msg00189.html
says
Old wiretap when you disable zlib was using fread() to read data.
Right now we have our own I/O routines [copied from zlib, slighty modified],
which is used also when you disable zlib.
There were some discussion about performance hits in bug #5802[1],
I have done some benchmarks (on Linux), and times were almost the same.
> I was not aware of that and I find it pretty surprising.
My followup:
https://www.wireshark.org/lists/wireshark-dev/201209/msg00193.html
explains in more detail:
As Jakub indicated, we used to use zlib's I/O routines to read capture files, meaning that both compressed *and* uncompressed files were read through those routines; if not built with zlib, we just used the C standard I/O routines.
We haven't done that since, I think, 1.6; Jakub took some sample code that came with zlib, supporting fast random access (rather than "move backward by rewinding and moving forward", which is what zlib's I/O routines did), and made it work in Wiretap. That code is used, albeit without the compressed-file support, even if built without zlib.
So there should be *no* slowdown reading uncompressed files if zlib is configured in, as the code path is the same in both cases (except perhaps for some tests for "am I reading a compressed file?" that are compiled out if we don't have zlib configured in).