[Final testing with benchmark tests] Fastest String Search Algorithm.

Amit Choudhary amitchoudhary0523@gmail.com
Sat Jun 12 13:29:34 GMT 2021


I optimized my algorithm and I ran the benchmark tests again for complex
needles only.

Now, because of my optimization, my algorithm is faster than strstr() in
worst case scenario also.

Please find the results below.

(I am attaching the file also.

********************************************************************************************************************************************

S: strstr() is faster (5 times)
C: choudhary algorithm is faster (25 times)

                                       twoway_strstr    chal

=========================================================================
S: Length 65536/ 64, complex needle 1: 49578.9 147700
S: Length 65536/256, complex needle 1: 47225 140834
S: Length 65536/1024, complex needle 1: 23112.5 138987
S: Length 65536/4096, complex needle 1: 47460.2 144605
S: Length 65536/8192, complex needle 1: 88410.9 153084

C: Length 65536/ 64, complex needle 2: 335094 133933
C: Length 65536/ 64, complex needle 3: 1.58005e+06 138910
C: Length 65536/256, complex needle 2: 329751 137798
C: Length 65536/256, complex needle 3: 1.5351e+06 137376
C: Length 65536/1024, complex needle 2: 295184 135700
C: Length 65536/1024, complex needle 3: 1.50964e+06    136388
C: Length 65536/4096, complex needle 2: 303698 145081
C: Length 65536/4096, complex needle 3: 1.45478e+06 135175
C: Length 65536/8192, complex needle 2: 328699 152917
C: Length 65536/8192, complex needle 3: 1.394e+06 133727
C: Length 65536/28672, complex needle 1: 275716 193667
C: Length 65536/28672, complex needle 2: 450194 196630
C: Length 65536/28672, complex needle 3: 1.02255e+06 126090
C: Length 65536/32768, complex needle 1: 316611 201831
C: Length 65536/32768, complex needle 2: 471559 204520
C: Length 65536/32768, complex needle 3: 948845 124384
C: Length 65536/40960, complex needle 1: 409391 220575
C: Length 65536/40960, complex needle 2: 516094 237880
C: Length 65536/40960, complex needle 3: 831214 121766
C: Length 65536/51200, complex needle 1: 495124 241209
C: Length 65536/51200, complex needle 2: 560630 241209
C: Length 65536/51200, complex needle 3: 653866 117998
C: Length 65536/65536, complex needle 1: 625619 269684
C: Length 65536/65536, complex needle 2: 649592 269709
C: Length 65536/65536, complex needle 3: 508453 113078
=========================================================================

********************************************************************************************************************************************

Regards,
Amit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bench-strstr.out
Type: application/octet-stream
Size: 2104 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20210612/bb3c335c/attachment.obj>


More information about the Libc-alpha mailing list