> > Does it make sense to do all those sanity checks only if a special
> > command-line flag is supplied to TShark, so that the checks
> are done as
> > part of the build process, rather than being done every
> time you run
> > Wireshark or TShark?
>
> Yes, because you ever know what cocktail of plugins the user
> has added
> to its installation.
I think we can leave this sanity check for short and filter names.
The whole proto_register_protocol() function (including hash
computation) takes about 5% of startup time now.
More than 60% of proto_register_protocol() time takes g_str_hash()
computation. I guess most of that time are hashes for long protocol
names.
My proposal is following:
- leave sanity check of short and filter names but do not hash them as
2-4 string comparision is not much slower than integer comparision and
g_str_hash() is not very god for short strings and it is easy to have
collision
- remove sanity check for long protocol names as it is not critical to
have this name unique (or perform this check only with some new
command-line option "strict sanity check")
Any comments?