Hi,

On Wed, Jun 04, 2014 at 11:24:59AM +0000, Anders Broman wrote:
> I did a test with
> static inline const guint8*
> guint8_pbrk(const guint8* haystack, size_t haystacklen _U_, const guint8 
> *needles, guchar *found_needle)
> {
>                 const guint8 *result = (const guint8 *)strpbrk(haystack, 
> needles);
> 
>                 if (result && found_needle)
>                                 *found_needle = *result;
> 
>                 return result;
> }
> 
> Which seems to give as good results on Ubuntu 13.10, it ends up using 
> __strpbrk_sse42 (libc-2.17.so: strcspn-c.c, ...)
> ==29458==
> ==29458== Events    : Ir
> ==29458== Collected : 21130728727
> ==29458==
> ==29458== I   refs:      21,130,728,727
> Load time in WS 0:19.300

Yep, ws_mempbrk_sse42() is based on __strpbrk_sse42(), and it should give 
similar results.
Still we must have binary (string, length) search, and strpbrk() works 
correctly only for NUL terminated string.
Our tvb's are not NUL terminated, and strpbrk() won't skip over NULs, so we 
need some modification.

Cheers,
Jakub.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to