This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2] Improve performance of strstr


Hi Rich,

> On Fri, Apr 12, 2019 at 04:49:11PM +0000, Wilco Dijkstra wrote:
>> Hi Szabolcs,
>> 
>> > please cc those who previously had objections against
>> > the patch and ask if they sustain their objections
>> > and if so what changes or demonstrations are needed
>> > to move this forward.
>> 
>> I haven't seen any constructive objections nor received any reply
>> when I asked for actual evidence of a claimed regression [1].
>
> I have already explained to you the cases which are going to perform
> pathologically bad with your vaguely optimized version of the naive
> O(nm) strstr. I don't have your specific hardware to run benchmarks,
> but the order of magnitude here is so large that a big-O argument
> suffices. If the proposed size limit were something like 24 or 32
> rather than 256 that might not necessarily be the case.

The O notation means O (256 N) is equivalent to O (N), ie. linear
performance in the worst case. And that is what matters for large inputs.

The average runtime of my algorithm is actually sublinear. So in that
sense Two-Way performs pathologically bad.

> I vaguely recall doing some testing on a glibc x86_64 box that showed
> the magnitude of the problem; I can try to dig that up or do it again
> if you really want to see it.

Yes, without a reproducible example I can't see what your issue is. You
can't make it go quadratic because it simply isn't.

Wilco

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]