Just for fun... :P
Work in progress, don't use for anything serious! And note how competitive the CRT strstr() algo is, at least for one byte patterns :biggrin:
It needs a 4MB text file, which gets automatically downloaded if it's not in the exe's folder.
33979 lines found
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX)
680 ms for finding 996156 lines containing J using CRT strstr()
1126 ms for finding 996156 lines containing J using MB Instr_()
1084 ms for finding 996156 lines containing J using faster Instr_()
1226 ms for finding 209040 lines containing Jes using CRT strstr()
1028 ms for finding 209040 lines containing Jes using MB Instr_()
372 ms for finding 209040 lines containing Jes using faster Instr_()
1221 ms for finding 188940 lines containing Jesus using CRT strstr()
1025 ms for finding 188940 lines containing Jesus using MB Instr_()
378 ms for finding 188940 lines containing Jesus using faster Instr_()
1255 ms for finding 38592 lines containing Jesus C using CRT strstr()
1040 ms for finding 38592 lines containing Jesus C using MB Instr_()
377 ms for finding 38592 lines containing Jesus C using faster Instr_()
1238 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
1036 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
389 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
1251 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
1032 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
377 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
1248 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
1047 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
385 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
One more:
Intel(R) Celeron(R) CPU N2840 @ 2.16GHz (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2)
1042 ms for finding 996156 lines containing J using CRT strstr()
1615 ms for finding 996156 lines containing J using MB Instr_()
1552 ms for finding 996156 lines containing J using faster Instr_()
1451 ms for finding 209040 lines containing Jes using CRT strstr()
1810 ms for finding 209040 lines containing Jes using MB Instr_()
633 ms for finding 209040 lines containing Jes using faster Instr_()
1436 ms for finding 188940 lines containing Jesus using CRT strstr()
1809 ms for finding 188940 lines containing Jesus using MB Instr_()
634 ms for finding 188940 lines containing Jesus using faster Instr_()
1454 ms for finding 38592 lines containing Jesus C using CRT strstr()
1835 ms for finding 38592 lines containing Jesus C using MB Instr_()
629 ms for finding 38592 lines containing Jesus C using faster Instr_()
1469 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
1837 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
630 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
1451 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
1836 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
632 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
1456 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
1838 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
660 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
holy shit !!! :lol:
Bible.txt downloaded
33979 lines found
Intel(R) Pentium(R) 4 CPU 3.00GHz (MMX, SSE, SSE2, SSE3)
1159 ms for finding 996156 lines containing J using CRT strstr()
2046 ms for finding 996156 lines containing J using MB Instr_()
1997 ms for finding 996156 lines containing J using faster Instr_()
1621 ms for finding 209040 lines containing Jes using CRT strstr()
1819 ms for finding 209040 lines containing Jes using MB Instr_()
962 ms for finding 209040 lines containing Jes using faster Instr_()
1613 ms for finding 188940 lines containing Jesus using CRT strstr()
1816 ms for finding 188940 lines containing Jesus using MB Instr_()
1263 ms for finding 188940 lines containing Jesus using faster Instr_()
1629 ms for finding 38592 lines containing Jesus C using CRT strstr()
1846 ms for finding 38592 lines containing Jesus C using MB Instr_()
984 ms for finding 38592 lines containing Jesus C using faster Instr_()
1648 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
1849 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
985 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
1646 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
1850 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
985 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
1667 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
1855 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
984 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
5204 ms - InString
4807 ms - InString
4877 ms - InString
3898 ms - zStr
3788 ms - zStr
3692 ms - zStr
done!
oops, wrong test 8)
Bible.txt downloaded
33979 lines found
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX)
382 ms for finding 996156 lines containing J using CRT strstr()
685 ms for finding 996156 lines containing J using MB Instr_()
679 ms for finding 996156 lines containing J using faster Instr_()
541 ms for finding 209040 lines containing Jes using CRT strstr()
501 ms for finding 209040 lines containing Jes using MB Instr_()
208 ms for finding 209040 lines containing Jes using faster Instr_()
539 ms for finding 188940 lines containing Jesus using CRT strstr()
509 ms for finding 188940 lines containing Jesus using MB Instr_()
214 ms for finding 188940 lines containing Jesus using faster Instr_()
553 ms for finding 38592 lines containing Jesus C using CRT strstr()
516 ms for finding 38592 lines containing Jesus C using MB Instr_()
219 ms for finding 38592 lines containing Jesus C using faster Instr_()
550 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
507 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
214 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
552 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
519 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
217 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
546 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
508 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
219 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
33979 lines found
AMD A6-6310 APU with AMD Radeon R4 Graphics (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4
.2, AVX)
1156 ms for finding 996156 lines containing J using CRT strstr()
1673 ms for finding 996156 lines containing J using MB Instr_()
1596 ms for finding 996156 lines containing J using faster Instr_()
1779 ms for finding 209040 lines containing Jes using CRT strstr()
1931 ms for finding 209040 lines containing Jes using MB Instr_()
660 ms for finding 209040 lines containing Jes using faster Instr_()
1799 ms for finding 188940 lines containing Jesus using CRT strstr()
1931 ms for finding 188940 lines containing Jesus using MB Instr_()
677 ms for finding 188940 lines containing Jesus using faster Instr_()
1822 ms for finding 38592 lines containing Jesus C using CRT strstr()
1974 ms for finding 38592 lines containing Jesus C using MB Instr_()
700 ms for finding 38592 lines containing Jesus C using faster Instr_()
1772 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
1970 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
678 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
1822 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
2008 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
704 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
1807 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
1962 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
722 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
-- hit any key --
Bible.txt downloaded
33979 lines found
Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, S
SE4.2, AVX)
919 ms for finding 996156 lines containing J using CRT strstr()
1613 ms for finding 996156 lines containing J using MB Instr_()
1512 ms for finding 996156 lines containing J using faster Instr_()
1028 ms for finding 209040 lines containing Jes using CRT strstr()
1136 ms for finding 209040 lines containing Jes using MB Instr_()
476 ms for finding 209040 lines containing Jes using faster Instr_()
1031 ms for finding 188940 lines containing Jesus using CRT strstr()
1164 ms for finding 188940 lines containing Jesus using MB Instr_()
495 ms for finding 188940 lines containing Jesus using faster Instr_()
1025 ms for finding 38592 lines containing Jesus C using CRT strstr()
1606 ms for finding 38592 lines containing Jesus C using MB Instr_()
1646 ms for finding 38592 lines containing Jesus C using faster Instr_()
3167 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
3728 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
1555 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
3260 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
3822 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
1614 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
3393 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
4073 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
1608 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
-- hit any key --
Quote from: mabdelouahab on September 22, 2015, 03:19:57 PM
Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, S
SE4.2, AVX)
3393 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
4073 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
1608 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX)
1248 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
1047 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
385 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
Really fat differences between two i5 CPUs again ::)
Thanks to everybody :icon14:
P.S.: Dave... :eusa_naughty:
I use that 4 MB text file for rather pragmatic reasons: It is difficult to find a text corpus for such tests that is large enough to go well beyond the data cache. Sometimes I concatenate it to do the tests with 400 or 800 MB, which is close to the allocation limit of Windows.
33979 lines found
Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz (MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, S
SE4.2, AVX)
467 ms for finding 996156 lines containing J using CRT strstr()
795 ms for finding 996156 lines containing J using MB Instr_()
784 ms for finding 996156 lines containing J using faster Instr_()
667 ms for finding 209040 lines containing Jes using CRT strstr()
730 ms for finding 209040 lines containing Jes using MB Instr_()
267 ms for finding 209040 lines containing Jes using faster Instr_()
670 ms for finding 188940 lines containing Jesus using CRT strstr()
739 ms for finding 188940 lines containing Jesus using MB Instr_()
278 ms for finding 188940 lines containing Jesus using faster Instr_()
673 ms for finding 38592 lines containing Jesus C using CRT strstr()
744 ms for finding 38592 lines containing Jesus C using MB Instr_()
279 ms for finding 38592 lines containing Jesus C using faster Instr_()
676 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
742 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
274 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
675 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
750 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
276 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
673 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
742 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
276 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
-- hit any key --
Bible.txt downloaded
33979 lines found
AMD E-450 APU with Radeon(tm) HD Graphics (MMX, SSE, SSE2, SSE3, SSSE3) 1,6 GHz
1898 ms for finding 996156 lines containing J using CRT strstr()
2593 ms for finding 996156 lines containing J using MB Instr_()
2541 ms for finding 996156 lines containing J using faster Instr_()
2449 ms for finding 209040 lines containing Jes using CRT strstr()
2851 ms for finding 209040 lines containing Jes using MB Instr_()
1124 ms for finding 209040 lines containing Jes using faster Instr_()
2473 ms for finding 188940 lines containing Jesus using CRT strstr()
2868 ms for finding 188940 lines containing Jesus using MB Instr_()
1168 ms for finding 188940 lines containing Jesus using faster Instr_()
2494 ms for finding 38592 lines containing Jesus C using CRT strstr()
2841 ms for finding 38592 lines containing Jesus C using MB Instr_()
1210 ms for finding 38592 lines containing Jesus C using faster Instr_()
2641 ms for finding 38592 lines containing Jesus Chr using CRT strstr()
2879 ms for finding 38592 lines containing Jesus Chr using MB Instr_()
1171 ms for finding 38592 lines containing Jesus Chr using faster Instr_()
2510 ms for finding 38592 lines containing Jesus Chris using CRT strstr()
2939 ms for finding 38592 lines containing Jesus Chris using MB Instr_()
1194 ms for finding 38592 lines containing Jesus Chris using faster Instr_()
2490 ms for finding 38592 lines containing Jesus Christ using CRT strstr()
2848 ms for finding 38592 lines containing Jesus Christ using MB Instr_()
1172 ms for finding 38592 lines containing Jesus Christ using faster Instr_()
-- hit any key --
Thanks :icon14:
New version, includes Masm32 find$() aka InString (note that find$() returns always zero if an empty pattern is passed; it also chokes with an exception if empty pattern meets end of array...):
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
32 ms for finding 2004761 lines containing [] using CRT strstr()
399 ms for finding 0 lines containing [] using Masm32 find$()
348 ms for finding 2004761 lines containing [] using MB Instr_()
33 ms for finding 2004761 lines containing [] using faster Instr_()
199 ms for finding 292404 lines containing [J] using CRT strstr()
367 ms for finding 292404 lines containing [J] using Masm32 find$()
326 ms for finding 292404 lines containing [J] using MB Instr_()
320 ms for finding 292404 lines containing [J] using faster Instr_()
347 ms for finding 165908 lines containing [Je] using CRT strstr()
379 ms for finding 165908 lines containing [Je] using Masm32 find$()
287 ms for finding 165908 lines containing [Je] using MB Instr_()
107 ms for finding 165908 lines containing [Je] using faster Instr_()
365 ms for finding 61360 lines containing [Jes] using CRT strstr()
391 ms for finding 61360 lines containing [Jes] using Masm32 find$()
299 ms for finding 61360 lines containing [Jes] using MB Instr_()
112 ms for finding 61360 lines containing [Jes] using faster Instr_()
363 ms for finding 55578 lines containing [Jesu] using CRT strstr()
389 ms for finding 55578 lines containing [Jesu] using Masm32 find$()
300 ms for finding 55578 lines containing [Jesu] using MB Instr_()
110 ms for finding 55578 lines containing [Jesu] using faster Instr_()
364 ms for finding 55460 lines containing [Jesus] using CRT strstr()
390 ms for finding 55460 lines containing [Jesus] using Masm32 find$()
299 ms for finding 55460 lines containing [Jesus] using MB Instr_()
113 ms for finding 55460 lines containing [Jesus] using faster Instr_()
363 ms for finding 44604 lines containing [Jesus ] using CRT strstr()
393 ms for finding 44604 lines containing [Jesus ] using Masm32 find$()
301 ms for finding 44604 lines containing [Jesus ] using MB Instr_()
111 ms for finding 44604 lines containing [Jesus ] using faster Instr_()
368 ms for finding 11328 lines containing [Jesus C] using CRT strstr()
390 ms for finding 11328 lines containing [Jesus C] using Masm32 find$()
304 ms for finding 11328 lines containing [Jesus C] using MB Instr_()
112 ms for finding 11328 lines containing [Jesus C] using faster Instr_()
1018 ms total for faster Instr_(), 2401 ms for CRT, crt:mb=2.36
318 bytes for InstrJJw
prescott w/htt
Intel(R) Pentium(R) 4 CPU 3.00GHz
57 ms for finding 2004761 lines containing [] using CRT strstr()
574 ms for finding 0 lines containing [] using Masm32 find$()
624 ms for finding 2004761 lines containing [] using MB Instr_()
66 ms for finding 2004761 lines containing [] using faster Instr_()
308 ms for finding 292404 lines containing [J] using CRT strstr()
554 ms for finding 292404 lines containing [J] using Masm32 find$()
587 ms for finding 292404 lines containing [J] using MB Instr_()
559 ms for finding 292404 lines containing [J] using faster Instr_()
465 ms for finding 165908 lines containing [Je] using CRT strstr()
564 ms for finding 165908 lines containing [Je] using Masm32 find$()
520 ms for finding 165908 lines containing [Je] using MB Instr_()
268 ms for finding 165908 lines containing [Je] using faster Instr_()
478 ms for finding 61360 lines containing [Jes] using CRT strstr()
578 ms for finding 61360 lines containing [Jes] using Masm32 find$()
542 ms for finding 61360 lines containing [Jes] using MB Instr_()
282 ms for finding 61360 lines containing [Jes] using faster Instr_()
479 ms for finding 55578 lines containing [Jesu] using CRT strstr()
580 ms for finding 55578 lines containing [Jesu] using Masm32 find$()
538 ms for finding 55578 lines containing [Jesu] using MB Instr_()
280 ms for finding 55578 lines containing [Jesu] using faster Instr_()
482 ms for finding 55460 lines containing [Jesus] using CRT strstr()
580 ms for finding 55460 lines containing [Jesus] using Masm32 find$()
542 ms for finding 55460 lines containing [Jesus] using MB Instr_()
285 ms for finding 55460 lines containing [Jesus] using faster Instr_()
482 ms for finding 44604 lines containing [Jesus ] using CRT strstr()
567 ms for finding 44604 lines containing [Jesus ] using Masm32 find$()
544 ms for finding 44604 lines containing [Jesus ] using MB Instr_()
278 ms for finding 44604 lines containing [Jesus ] using faster Instr_()
488 ms for finding 11328 lines containing [Jesus C] using CRT strstr()
567 ms for finding 11328 lines containing [Jesus C] using Masm32 find$()
547 ms for finding 11328 lines containing [Jesus C] using MB Instr_()
287 ms for finding 11328 lines containing [Jesus C] using faster Instr_()
2305 ms total for faster Instr_(), 3239 ms for CRT, crt:mb=1.41
Bible.txt downloaded
33979 lines found
Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz
40 ms for finding 2004761 lines containing [] using CRT strstr()
304 ms for finding 0 lines containing [] using Masm32 find$()
249 ms for finding 2004761 lines containing [] using MB Instr_()
23 ms for finding 2004761 lines containing [] using faster Instr_()
140 ms for finding 292404 lines containing [J] using CRT strstr()
264 ms for finding 292404 lines containing [J] using Masm32 find$()
233 ms for finding 292404 lines containing [J] using MB Instr_()
229 ms for finding 292404 lines containing [J] using faster Instr_()
189 ms for finding 165908 lines containing [Je] using CRT strstr()
274 ms for finding 165908 lines containing [Je] using Masm32 find$()
207 ms for finding 165908 lines containing [Je] using MB Instr_()
75 ms for finding 165908 lines containing [Je] using faster Instr_()
198 ms for finding 61360 lines containing [Jes] using CRT strstr()
281 ms for finding 61360 lines containing [Jes] using Masm32 find$()
214 ms for finding 61360 lines containing [Jes] using MB Instr_()
79 ms for finding 61360 lines containing [Jes] using faster Instr_()
197 ms for finding 55578 lines containing [Jesu] using CRT strstr()
280 ms for finding 55578 lines containing [Jesu] using Masm32 find$()
215 ms for finding 55578 lines containing [Jesu] using MB Instr_()
78 ms for finding 55578 lines containing [Jesu] using faster Instr_()
198 ms for finding 55460 lines containing [Jesus] using CRT strstr()
280 ms for finding 55460 lines containing [Jesus] using Masm32 find$()
215 ms for finding 55460 lines containing [Jesus] using MB Instr_()
78 ms for finding 55460 lines containing [Jesus] using faster Instr_()
197 ms for finding 44604 lines containing [Jesus ] using CRT strstr()
280 ms for finding 44604 lines containing [Jesus ] using Masm32 find$()
216 ms for finding 44604 lines containing [Jesus ] using MB Instr_()
77 ms for finding 44604 lines containing [Jesus ] using faster Instr_()
200 ms for finding 11328 lines containing [Jesus C] using CRT strstr()
280 ms for finding 11328 lines containing [Jesus C] using Masm32 find$()
219 ms for finding 11328 lines containing [Jesus C] using MB Instr_()
78 ms for finding 11328 lines containing [Jesus C] using faster Instr_()
717 ms total for faster Instr_(), 1359 ms for CRT, crt:mb=1.90
318 bytes for InstrJJw
@jj2007
Can test that with strstr from pocrt.dll too?
Bible.txt downloaded
33979 lines found
Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
18 ms for finding 2004761 lines containing [] using CRT strstr()
186 ms for finding 0 lines containing [] using Masm32 find$()
217 ms for finding 2004761 lines containing [] using MB Instr_()
18 ms for finding 2004761 lines containing [] using faster Instr_()
115 ms for finding 292404 lines containing [J] using CRT strstr()
174 ms for finding 292404 lines containing [J] using Masm32 find$()
201 ms for finding 292404 lines containing [J] using MB Instr_()
197 ms for finding 292404 lines containing [J] using faster Instr_()
152 ms for finding 165908 lines containing [Je] using CRT strstr()
181 ms for finding 165908 lines containing [Je] using Masm32 find$()
143 ms for finding 165908 lines containing [Je] using MB Instr_()
60 ms for finding 165908 lines containing [Je] using faster Instr_()
160 ms for finding 61360 lines containing [Jes] using CRT strstr()
188 ms for finding 61360 lines containing [Jes] using Masm32 find$()
146 ms for finding 61360 lines containing [Jes] using MB Instr_()
63 ms for finding 61360 lines containing [Jes] using faster Instr_()
159 ms for finding 55578 lines containing [Jesu] using CRT strstr()
185 ms for finding 55578 lines containing [Jesu] using Masm32 find$()
146 ms for finding 55578 lines containing [Jesu] using MB Instr_()
60 ms for finding 55578 lines containing [Jesu] using faster Instr_()
159 ms for finding 55460 lines containing [Jesus] using CRT strstr()
189 ms for finding 55460 lines containing [Jesus] using Masm32 find$()
147 ms for finding 55460 lines containing [Jesus] using MB Instr_()
61 ms for finding 55460 lines containing [Jesus] using faster Instr_()
160 ms for finding 44604 lines containing [Jesus ] using CRT strstr()
187 ms for finding 44604 lines containing [Jesus ] using Masm32 find$()
149 ms for finding 44604 lines containing [Jesus ] using MB Instr_()
60 ms for finding 44604 lines containing [Jesus ] using faster Instr_()
164 ms for finding 11328 lines containing [Jesus C] using CRT strstr()
186 ms for finding 11328 lines containing [Jesus C] using Masm32 find$()
150 ms for finding 11328 lines containing [Jesus C] using MB Instr_()
62 ms for finding 11328 lines containing [Jesus C] using faster Instr_()
581 ms total for faster Instr_(), 1087 ms for CRT, crt:mb=1.87
318 bytes for InstrJJw
Quote from: TWell on September 23, 2015, 08:43:27 PM
@jj2007
Can test that with strstr from pocrt.dll too?
Here it is - note that in order to see Pelles C results, pocrt.dll must be in the path:
33979 lines found
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
206 ms for finding 1465185 lines containing [the] using CRT strstr()
285 ms for finding 1465185 lines containing [the] using Masm32 find$()
252 ms for finding 1465185 lines containing [the] using PellesC strstr
157 ms for finding 1489830 lines containing [the] using MB Instr_()
111 ms for finding 1489830 lines containing [the] using faster Instr_()
467 ms for finding 418276 lines containing [ther] using CRT strstr()
491 ms for finding 418276 lines containing [ther] using Masm32 find$()
648 ms for finding 418276 lines containing [ther] using PellesC strstr
359 ms for finding 442232 lines containing [ther] using MB Instr_()
176 ms for finding 442232 lines containing [ther] using faster Instr_()
510 ms for finding 205004 lines containing [there] using CRT strstr()
523 ms for finding 205004 lines containing [there] using Masm32 find$()
710 ms for finding 205004 lines containing [there] using PellesC strstr
392 ms for finding 233995 lines containing [there] using MB Instr_()
176 ms for finding 233995 lines containing [there] using faster Instr_()
545 ms for finding 42771 lines containing [theref] using CRT strstr()
523 ms for finding 42771 lines containing [theref] using Masm32 find$()
761 ms for finding 42771 lines containing [theref] using PellesC strstr
419 ms for finding 65402 lines containing [theref] using MB Instr_()
181 ms for finding 65402 lines containing [theref] using faster Instr_()
542 ms for finding 42665 lines containing [therefo] using CRT strstr()
525 ms for finding 42665 lines containing [therefo] using Masm32 find$()
760 ms for finding 42665 lines containing [therefo] using PellesC strstr
420 ms for finding 65296 lines containing [therefo] using MB Instr_()
180 ms for finding 65296 lines containing [therefo] using faster Instr_()
542 ms for finding 42665 lines containing [therefor] using CRT strstr()
535 ms for finding 42665 lines containing [therefor] using Masm32 find$()
761 ms for finding 42665 lines containing [therefor] using PellesC strstr
420 ms for finding 65296 lines containing [therefor] using MB Instr_()
181 ms for finding 65296 lines containing [therefor] using faster Instr_()
548 ms for finding 42665 lines containing [therefore] using CRT strstr()
536 ms for finding 42665 lines containing [therefore] using Masm32 find$()
762 ms for finding 42665 lines containing [therefore] using PellesC strstr
423 ms for finding 65296 lines containing [therefore] using MB Instr_()
183 ms for finding 65296 lines containing [therefore] using faster Instr_()
578 ms for finding 42665 lines containing [therefore] using CRT strstr()
539 ms for finding 42665 lines containing [therefore] using Masm32 find$()
762 ms for finding 42665 lines containing [therefore] using PellesC strstr
423 ms for finding 65296 lines containing [therefore] using MB Instr_()
183 ms for finding 65296 lines containing [therefore] using faster Instr_()
1371 ms total for faster Instr_(), 3938 ms for CRT, crt:mb=2.87
364 bytes for InstrJJw
Line counts differ in this version:
578 ms for finding 42665 lines containing [therefore] using CRT strstr()
183 ms for finding 65296 lines containing [therefore] using faster Instr_()
The reason is that the new algo has the
IntelliSense option, as in MasmBasic Instr_() (http://www.webalice.it/jj2006/MasmBasicQuickReference.htm#Mb1153). It allows to search for e.g. "therefore" as in the test run above, and to catch Therefore and therefore (but not tHereFore etc). This is evidently an important option for text searches.
33979 lines found
Genuine Intel(R) CPU T2060 @ 1.60GHz
351 ms for finding 1465185 lines containing [the] using CRT strstr()
529 ms for finding 1465185 lines containing [the] using Masm32 find$()
437 ms for finding 1465185 lines containing [the] using PellesC strstr
324 ms for finding 1489830 lines containing [the] using MB Instr_()
226 ms for finding 1489830 lines containing [the] using faster Instr_()
757 ms for finding 418276 lines containing [ther] using CRT strstr()
829 ms for finding 418276 lines containing [ther] using Masm32 find$()
1104 ms for finding 418276 lines containing [ther] using PellesC strstr
796 ms for finding 442232 lines containing [ther] using MB Instr_()
373 ms for finding 442232 lines containing [ther] using faster Instr_()
813 ms for finding 205004 lines containing [there] using CRT strstr()
888 ms for finding 205004 lines containing [there] using Masm32 find$()
1197 ms for finding 205004 lines containing [there] using PellesC strstr
866 ms for finding 233995 lines containing [there] using MB Instr_()
393 ms for finding 233995 lines containing [there] using faster Instr_()
868 ms for finding 42771 lines containing [theref] using CRT strstr()
894 ms for finding 42771 lines containing [theref] using Masm32 find$()
1283 ms for finding 42771 lines containing [theref] using PellesC strstr
925 ms for finding 65402 lines containing [theref] using MB Instr_()
407 ms for finding 65402 lines containing [theref] using faster Instr_()
859 ms for finding 42665 lines containing [therefo] using CRT strstr()
899 ms for finding 42665 lines containing [therefo] using Masm32 find$()
1280 ms for finding 42665 lines containing [therefo] using PellesC strstr
916 ms for finding 65296 lines containing [therefo] using MB Instr_()
407 ms for finding 65296 lines containing [therefo] using faster Instr_()
867 ms for finding 42665 lines containing [therefor] using CRT strstr()
901 ms for finding 42665 lines containing [therefor] using Masm32 find$()
1285 ms for finding 42665 lines containing [therefor] using PellesC strstr
921 ms for finding 65296 lines containing [therefor] using MB Instr_()
411 ms for finding 65296 lines containing [therefor] using faster Instr_()
872 ms for finding 42665 lines containing [therefore] using CRT strstr()
917 ms for finding 42665 lines containing [therefore] using Masm32 find$()
1289 ms for finding 42665 lines containing [therefore] using PellesC strstr
930 ms for finding 65296 lines containing [therefore] using MB Instr_()
407 ms for finding 65296 lines containing [therefore] using faster Instr_()
867 ms for finding 42665 lines containing [therefore] using CRT strstr()
911 ms for finding 42665 lines containing [therefore] using Masm32 find$()
1290 ms for finding 42665 lines containing [therefore] using PellesC strstr
930 ms for finding 65296 lines containing [therefore] using MB Instr_()
407 ms for finding 65296 lines containing [therefore] using faster Instr_()
3031 ms total for faster Instr_(), 6254 ms for CRT, crt:mb=2.06
364 bytes for InstrJJw
prescott w/htt
Intel(R) Pentium(R) 4 CPU 3.00GHz
303 ms for finding 1465185 lines containing [the] using CRT strstr()
469 ms for finding 1465185 lines containing [the] using Masm32 find$()
259 ms for finding 1489830 lines containing [the] using MB Instr_()
232 ms for finding 1489830 lines containing [the] using faster Instr_()
737 ms for finding 418276 lines containing [ther] using CRT strstr()
792 ms for finding 418276 lines containing [ther] using Masm32 find$()
617 ms for finding 442232 lines containing [ther] using MB Instr_()
451 ms for finding 442232 lines containing [ther] using faster Instr_()
810 ms for finding 205004 lines containing [there] using CRT strstr()
862 ms for finding 205004 lines containing [there] using Masm32 find$()
669 ms for finding 233995 lines containing [there] using MB Instr_()
471 ms for finding 233995 lines containing [there] using faster Instr_()
857 ms for finding 42771 lines containing [theref] using CRT strstr()
856 ms for finding 42771 lines containing [theref] using Masm32 find$()
715 ms for finding 65402 lines containing [theref] using MB Instr_()
490 ms for finding 65402 lines containing [theref] using faster Instr_()
859 ms for finding 42665 lines containing [therefo] using CRT strstr()
869 ms for finding 42665 lines containing [therefo] using Masm32 find$()
717 ms for finding 65296 lines containing [therefo] using MB Instr_()
513 ms for finding 65296 lines containing [therefo] using faster Instr_()
858 ms for finding 42665 lines containing [therefor] using CRT strstr()
863 ms for finding 42665 lines containing [therefor] using Masm32 find$()
717 ms for finding 65296 lines containing [therefor] using MB Instr_()
491 ms for finding 65296 lines containing [therefor] using faster Instr_()
860 ms for finding 42665 lines containing [therefore] using CRT strstr()
877 ms for finding 42665 lines containing [therefore] using Masm32 find$()
716 ms for finding 65296 lines containing [therefore] using MB Instr_()
492 ms for finding 65296 lines containing [therefore] using faster Instr_()
855 ms for finding 42665 lines containing [therefore] using CRT strstr()
880 ms for finding 42665 lines containing [therefore] using Masm32 find$()
715 ms for finding 65296 lines containing [therefore] using MB Instr_()
494 ms for finding 65296 lines containing [therefore] using faster Instr_()
3634 ms total for faster Instr_(), 6139 ms for CRT, crt:mb=1.69
Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz
123 ms for finding 1465185 lines containing [the] using CRT strstr()
196 ms for finding 1465185 lines containing [the] using Masm32 find$()
105 ms for finding 1489830 lines containing [the] using MB Instr_()
78 ms for finding 1489830 lines containing [the] using faster Instr_()
306 ms for finding 418276 lines containing [ther] using CRT strstr()
329 ms for finding 418276 lines containing [ther] using Masm32 find$()
282 ms for finding 442232 lines containing [ther] using MB Instr_()
135 ms for finding 442232 lines containing [ther] using faster Instr_()
333 ms for finding 205004 lines containing [there] using CRT strstr()
352 ms for finding 205004 lines containing [there] using Masm32 find$()
309 ms for finding 233995 lines containing [there] using MB Instr_()
140 ms for finding 233995 lines containing [there] using faster Instr_()
356 ms for finding 42771 lines containing [theref] using CRT strstr()
360 ms for finding 42771 lines containing [theref] using Masm32 find$()
330 ms for finding 65402 lines containing [theref] using MB Instr_()
149 ms for finding 65402 lines containing [theref] using faster Instr_()
355 ms for finding 42665 lines containing [therefo] using CRT strstr()
362 ms for finding 42665 lines containing [therefo] using Masm32 find$()
302 ms for finding 65296 lines containing [therefo] using MB Instr_()
145 ms for finding 65296 lines containing [therefo] using faster Instr_()
367 ms for finding 42665 lines containing [therefor] using CRT strstr()
357 ms for finding 42665 lines containing [therefor] using Masm32 find$()
306 ms for finding 65296 lines containing [therefor] using MB Instr_()
133 ms for finding 65296 lines containing [therefor] using faster Instr_()
358 ms for finding 42665 lines containing [therefore] using CRT strstr()
382 ms for finding 42665 lines containing [therefore] using Masm32 find$()
325 ms for finding 65296 lines containing [therefore] using MB Instr_()
131 ms for finding 65296 lines containing [therefore] using faster Instr_()
356 ms for finding 42665 lines containing [therefore] using CRT strstr()
362 ms for finding 42665 lines containing [therefore] using Masm32 find$()
302 ms for finding 65296 lines containing [therefore] using MB Instr_()
132 ms for finding 65296 lines containing [therefore] using faster Instr_()
1043 ms total for faster Instr_(), 2554 ms for CRT, crt:mb=2.45
364 bytes for InstrJJw
Test program with PellesC that use Bible.txt.
200 times 'Jesus Christ'
Result:load time: 11 ms
pocrt strstr
1284 ms 40200
msvcrt strstr
2003 ms 40200
MbInstr
2581 ms 40200
Press ENTER
What goes wrong?
Quote from: TWell on September 24, 2015, 07:24:03 PMWhat goes wrong?
The timings look OK, but I'm surprised that you get 40200 lines where I get 49820 ::)
What is the size (in bytes) of your bible.txt?
The current MasmBasic Instr() is not particularly fast, roughly on par with CRT and Masm32 InString. Its strengths are the case-insensitive and full word options. The new one I am testing now will be about twice as fast but the two options will not be available.
331 ms for finding 49820 lines containing [Jesus] using CRT strstr()
93 ms for finding 49820 lines containing [Jesus] using InstrB
207 ms for finding 49820 lines containing [Jesus] using PellesC strstr
274 ms for finding 49820 lines containing [Jesus] using MB Instr_()
106 ms for finding 49820 lines containing [Jesus] using faster Instr_()
331 ms for finding 49820 lines containing [Jesus] using CRT strstr()
94 ms for finding 49820 lines containing [Jesus] using InstrB
205 ms for finding 49820 lines containing [Jesus] using PellesC strstr
271 ms for finding 49820 lines containing [Jesus] using MB Instr_()
100 ms for finding 49820 lines containing [Jesus] using faster Instr_()
332 ms for finding 49820 lines containing [Jesus] using CRT strstr()
96 ms for finding 49820 lines containing [Jesus] using InstrB
210 ms for finding 49820 lines containing [Jesus] using PellesC strstr
272 ms for finding 49820 lines containing [Jesus] using MB Instr_()
103 ms for finding 49820 lines containing [Jesus] using faster Instr_()
Bible.txt 4 397 206 bytes.
There is 201 'Jesus Christ' and 2 'JESUS CHRIST'
I use
WindowsGrep 2.3 (http://www.wingrep.com/)
grepwin (http://sourceforge.net/projects/grepwin/)
too.
Bible.txt load time: 10 ms
counter: 200, search string: 'Jesus'
pocrt strstr 1389 ms 196200
msvcrt strstr 1846 ms 196200
MB MbInstr 2027 ms 196200
Bible.txt load time: 10 ms
counter: 200, search string: 'therefore'
pocrt strstr 5576 ms 163800
msvcrt strstr 3715 ms 163800
MB MbInstr 3196 ms 163800
Quote from: TWell on September 24, 2015, 11:40:33 PM
Bible.txt 4 397 206 bytes.
There is 201 'Jesus Christ' and 2 'JESUS CHRIST'
grepWin finds indeed 981 * Jesus. The MasmBasic equivalent is...
Print Str$("Jesus found %i times", Count(Cat$(FileRead$("Bible.txt")), "Jesus", 1))
... and it finds 981 matches, or 990 with option 1, i.e. case-insensitive.
Option 0 takes 8 ms, the case-insensitive search takes 11 ms, of which most is FileRead$().
So now Instr_(Fast, main$, sub$, mode) has become part of the new MasmBasic version. (http://fast%20memset%20and%20instr()%20algos) Timings are competitive with the CRT:
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
326 ms for finding 49820 lines containing [Jesus] using CRT strstr()
95 ms for finding 49820 lines containing [Jesus] using Instr_(fast, ...)
290 ms for finding 49820 lines containing [Jesus] using MB Instr_()
101 ms for finding 49820 lines containing [Jesus] using InstrW()
556 ms for Instr_(Fast, pHaystack, pNeedle, mode), fast : normal=0.705
1804 ms for CRT strstr, crt : fast=3.24
In the end, I had to decide between a byte scanner (using pcmpeqb) and a word scanner (using pcmpeqw). The byte scanner won, although it is marginally slower, for the simple reason that it can handle single byte "needles". In case-sensitive mode, the new algo is 2...3 times faster than CRT strstr, depending mainly on the first byte of the substring.
Thanks for all the testing :icon14:
load time: 8 ms
pocrt strstr 1117 ms 40200
msvcrt strstr 1833 ms 40200
MB InsJB 380 ms 40200
Once more - a new version with slightly improved performance:
33979 lines found
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
24 ms for finding 1834866 lines containing [] using CRT strstr()
27 ms for finding 1834866 lines containing [] using Instr_(fast, ...)
23 ms for finding 1834866 lines containing [] using PellesC strstr
0 ms for finding 0 lines containing [] using Masm32 InString
266 ms for finding 1834866 lines containing [] using MB Instr_()
30 ms for finding 1834866 lines containing [] using InstrW()
149 ms for finding 267624 lines containing [J] using CRT strstr()
60 ms for finding 267624 lines containing [J] using Instr_(fast, ...)
150 ms for finding 267624 lines containing [J] using PellesC strstr
276 ms for finding 267624 lines containing [J] using Masm32 InString
245 ms for finding 267624 lines containing [J] using MB Instr_()
241 ms for finding 267624 lines containing [J] using InstrW()
258 ms for finding 151848 lines containing [Je] using CRT strstr()
64 ms for finding 151848 lines containing [Je] using Instr_(fast, ...)
159 ms for finding 151848 lines containing [Je] using PellesC strstr
285 ms for finding 151848 lines containing [Je] using Masm32 InString
218 ms for finding 151848 lines containing [Je] using MB Instr_()
82 ms for finding 151848 lines containing [Je] using InstrW()
267 ms for finding 59886 lines containing [Jer] using CRT strstr()
66 ms for finding 59886 lines containing [Jer] using Instr_(fast, ...)
164 ms for finding 59886 lines containing [Jer] using PellesC strstr
289 ms for finding 59886 lines containing [Jer] using Masm32 InString
221 ms for finding 59886 lines containing [Jer] using MB Instr_()
84 ms for finding 59886 lines containing [Jer] using InstrW()
274 ms for finding 3942 lines containing [Jeri] using CRT strstr()
67 ms for finding 3942 lines containing [Jeri] using Instr_(fast, ...)
170 ms for finding 3942 lines containing [Jeri] using PellesC strstr
295 ms for finding 3942 lines containing [Jeri] using Masm32 InString
229 ms for finding 3942 lines containing [Jeri] using MB Instr_()
84 ms for finding 3942 lines containing [Jeri] using InstrW()
272 ms for finding 3186 lines containing [Jeric] using CRT strstr()
72 ms for finding 3186 lines containing [Jeric] using Instr_(fast, ...)
172 ms for finding 3186 lines containing [Jeric] using PellesC strstr
292 ms for finding 3186 lines containing [Jeric] using Masm32 InString
227 ms for finding 3186 lines containing [Jeric] using MB Instr_()
85 ms for finding 3186 lines containing [Jeric] using InstrW()
356 ms for Instr_(Fast, ...), fast : normal=0.587
606 ms total for InsW
1244 ms for CRT strstr, crt : fast=3.49
IMHO it can't get much faster, but of course, the Boyer-Moore brigade has not yet shown up ;)
P.S.: If you extract it to the folder where the bible.txt sits, it won't download it again.
prescott w/htt
33979 lines found
Intel(R) Pentium(R) 4 CPU 3.00GHz
58 ms for finding 1834866 lines containing [] using CRT strstr()
60 ms for finding 1834866 lines containing [] using Instr_(fast, ...)
0 ms for finding 0 lines containing [] using Masm32 InString
583 ms for finding 1834866 lines containing [] using MB Instr_()
92 ms for finding 1834866 lines containing [] using InstrW()
282 ms for finding 267624 lines containing [J] using CRT strstr()
170 ms for finding 267624 lines containing [J] using Instr_(fast, ...)
503 ms for finding 267624 lines containing [J] using Masm32 InString
549 ms for finding 267624 lines containing [J] using MB Instr_()
519 ms for finding 267624 lines containing [J] using InstrW()
426 ms for finding 151848 lines containing [Je] using CRT strstr()
175 ms for finding 151848 lines containing [Je] using Instr_(fast, ...)
516 ms for finding 151848 lines containing [Je] using Masm32 InString
477 ms for finding 151848 lines containing [Je] using MB Instr_()
246 ms for finding 151848 lines containing [Je] using InstrW()
436 ms for finding 59886 lines containing [Jer] using CRT strstr()
182 ms for finding 59886 lines containing [Jer] using Instr_(fast, ...)
524 ms for finding 59886 lines containing [Jer] using Masm32 InString
497 ms for finding 59886 lines containing [Jer] using MB Instr_()
259 ms for finding 59886 lines containing [Jer] using InstrW()
443 ms for finding 3942 lines containing [Jeri] using CRT strstr()
184 ms for finding 3942 lines containing [Jeri] using Instr_(fast, ...)
552 ms for finding 3942 lines containing [Jeri] using Masm32 InString
507 ms for finding 3942 lines containing [Jeri] using MB Instr_()
258 ms for finding 3942 lines containing [Jeri] using InstrW()
444 ms for finding 3186 lines containing [Jeric] using CRT strstr()
184 ms for finding 3186 lines containing [Jeric] using Instr_(fast, ...)
528 ms for finding 3186 lines containing [Jeric] using Masm32 InString
512 ms for finding 3186 lines containing [Jeric] using MB Instr_()
262 ms for finding 3186 lines containing [Jeric] using InstrW()
955 ms for Instr_(Fast, ...), fast : normal=0.584
1636 ms total for InsW
2089 ms for CRT strstr, crt : fast=2.19
33979 lines found
Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz
37 ms for finding 1834866 lines containing [] using CRT strstr()
25 ms for finding 1834866 lines containing [] using Instr_(fast, ...)
0 ms for finding 0 lines containing [] using Masm32 InString
228 ms for finding 1834866 lines containing [] using MB Instr_()
26 ms for finding 1834866 lines containing [] using InstrW()
128 ms for finding 267624 lines containing [J] using CRT strstr()
56 ms for finding 267624 lines containing [J] using Instr_(fast, ...)
241 ms for finding 267624 lines containing [J] using Masm32 InString
214 ms for finding 267624 lines containing [J] using MB Instr_()
211 ms for finding 267624 lines containing [J] using InstrW()
173 ms for finding 151848 lines containing [Je] using CRT strstr()
60 ms for finding 151848 lines containing [Je] using Instr_(fast, ...)
249 ms for finding 151848 lines containing [Je] using Masm32 InString
188 ms for finding 151848 lines containing [Je] using MB Instr_()
70 ms for finding 151848 lines containing [Je] using InstrW()
178 ms for finding 59886 lines containing [Jer] using CRT strstr()
62 ms for finding 59886 lines containing [Jer] using Instr_(fast, ...)
254 ms for finding 59886 lines containing [Jer] using Masm32 InString
195 ms for finding 59886 lines containing [Jer] using MB Instr_()
73 ms for finding 59886 lines containing [Jer] using InstrW()
183 ms for finding 3942 lines containing [Jeri] using CRT strstr()
62 ms for finding 3942 lines containing [Jeri] using Instr_(fast, ...)
257 ms for finding 3942 lines containing [Jeri] using Masm32 InString
200 ms for finding 3942 lines containing [Jeri] using MB Instr_()
74 ms for finding 3942 lines containing [Jeri] using InstrW()
183 ms for finding 3186 lines containing [Jeric] using CRT strstr()
62 ms for finding 3186 lines containing [Jeric] using Instr_(fast, ...)
257 ms for finding 3186 lines containing [Jeric] using Masm32 InString
201 ms for finding 3186 lines containing [Jeric] using MB Instr_()
74 ms for finding 3186 lines containing [Jeric] using InstrW()
327 ms for Instr_(Fast, ...), fast : normal=0.619
528 ms total for InsW
882 ms for CRT strstr, crt : fast=2.70
391 bytes for InstrJJb
384 bytes for InsJb16
pocrt.dll version 8 for testing and reference for system msvcrt.dll.
How msvcrt.dll differs between OS versions?
recent OS versions have added a lot of extra code, trying to overcome security issues (buffer overflow)
from what i understand, they are much slower, too
Can you run jj2007 test with pocrt.dll too?
Quote from: TWell on September 30, 2015, 09:31:33 PM
Can you run jj2007 test with pocrt.dll too?
Here it is. The dll must be in the same folder.
Core i5:
384 ms for Instr_(Fast, ...), fast : normal=0.625
614 ms total for InstrWord
1265 ms for CRT strstr, crt : fast=3.29
853 ms total for Pelles C
1434 ms total for Masm32
Quote from: TWell on September 30, 2015, 07:42:11 PM
For strings here (http://www.dmi.unict.it/~faro/smart/references.php).
Lots of test files too.
Nice site indeed. But it seems there has been little progress over the years. BM/Horspool is not so fast for short needles, hashing involves a lot of overhead, ...
In old XP it dont show pocrt.dll results even that dll is in same folder?
33979 lines found
Intel(R) Celeron(R) CPU 550 @ 2.00GHz
44 ms for finding 1834866 lines containing [] using CRT strstr()
49 ms for finding 1834866 lines containing [] using Instr_(fast, ...)
0 ms for finding 0 lines containing [] using Masm32 InString
937 ms for finding 1834866 lines containing [] using MB Instr_()
47 ms for finding 1834866 lines containing [] using InstrW()
272 ms for finding 267624 lines containing [J] using CRT strstr()
122 ms for finding 267624 lines containing [J] using Instr_(fast, ...)
493 ms for finding 267624 lines containing [J] using Masm32 InString
857 ms for finding 267624 lines containing [J] using MB Instr_()
829 ms for finding 267624 lines containing [J] using InstrW()
331 ms for finding 151848 lines containing [Je] using CRT strstr()
121 ms for finding 151848 lines containing [Je] using Instr_(fast, ...)
500 ms for finding 151848 lines containing [Je] using Masm32 InString
357 ms for finding 151848 lines containing [Je] using MB Instr_()
183 ms for finding 151848 lines containing [Je] using InstrW()
336 ms for finding 59886 lines containing [Jer] using CRT strstr()
132 ms for finding 59886 lines containing [Jer] using Instr_(fast, ...)
509 ms for finding 59886 lines containing [Jer] using Masm32 InString
375 ms for finding 59886 lines containing [Jer] using MB Instr_()
183 ms for finding 59886 lines containing [Jer] using InstrW()
335 ms for finding 3942 lines containing [Jeri] using CRT strstr()
136 ms for finding 3942 lines containing [Jeri] using Instr_(fast, ...)
532 ms for finding 3942 lines containing [Jeri] using Masm32 InString
383 ms for finding 3942 lines containing [Jeri] using MB Instr_()
185 ms for finding 3942 lines containing [Jeri] using InstrW()
348 ms for finding 3186 lines containing [Jeric] using CRT strstr()
128 ms for finding 3186 lines containing [Jeric] using Instr_(fast, ...)
512 ms for finding 3186 lines containing [Jeric] using Masm32 InString
385 ms for finding 3186 lines containing [Jeric] using MB Instr_()
183 ms for finding 3186 lines containing [Jeric] using InstrW()
688 ms for Instr_(Fast, ...), fast : normal=0.427
1610 ms total for InstrWord
1666 ms for CRT strstr, crt : fast=2.42
0 ms total for Pelles C
2546 ms total for Masm32
391 bytes for InstrJJb
382 bytes for InsJb16
-- hit any key --
Quote from: TWell on October 01, 2015, 05:09:08 AM
In old XP it dont show pocrt.dll results even that dll is in same folder?
This is the relevant code:
.if Exist("pocrt.dll")
inc hasPellesC
Dll "pocrt"
Declare strstrP, C:2 Alias "strstr"
.endif
Try starting the exe from the commandline. Sometimes the current folder is not the exe's folder.
According FileMon.exe and Depends.exe those don't even try to open that dll in XP.
Any another XP user to try those InstrFastArray.exe's?
Dll is in Replay #27 here (http://masm32.com/board/index.php?topic=4631.msg50060#msg50060)
maybe it has to do with the file being "blocked" (execution policy)
right-click on the DLL, Properties, then Unblock, then Apply
prescott w/htt
Intel(R) Pentium(R) 4 CPU 3.00GHz
55 ms for finding 1834866 lines containing [] using CRT strstr()
60 ms for finding 1834866 lines containing [] using Instr_(fast, ...)
54 ms for finding 1834866 lines containing [] using PellesC strstr
0 ms for finding 0 lines containing [] using Masm32 InString
575 ms for finding 1834866 lines containing [] using MB Instr_()
87 ms for finding 1834866 lines containing [] using InstrW()
276 ms for finding 267624 lines containing [J] using CRT strstr()
163 ms for finding 267624 lines containing [J] using Instr_(fast, ...)
285 ms for finding 267624 lines containing [J] using PellesC strstr
491 ms for finding 267624 lines containing [J] using Masm32 InString
542 ms for finding 267624 lines containing [J] using MB Instr_()
509 ms for finding 267624 lines containing [J] using InstrW()
427 ms for finding 151848 lines containing [Je] using CRT strstr()
175 ms for finding 151848 lines containing [Je] using Instr_(fast, ...)
293 ms for finding 151848 lines containing [Je] using PellesC strstr
511 ms for finding 151848 lines containing [Je] using Masm32 InString
470 ms for finding 151848 lines containing [Je] using MB Instr_()
243 ms for finding 151848 lines containing [Je] using InstrW()
432 ms for finding 59886 lines containing [Jer] using CRT strstr()
178 ms for finding 59886 lines containing [Jer] using Instr_(fast, ...)
304 ms for finding 59886 lines containing [Jer] using PellesC strstr
520 ms for finding 59886 lines containing [Jer] using Masm32 InString
484 ms for finding 59886 lines containing [Jer] using MB Instr_()
254 ms for finding 59886 lines containing [Jer] using InstrW()
454 ms for finding 3942 lines containing [Jeri] using CRT strstr()
179 ms for finding 3942 lines containing [Jeri] using Instr_(fast, ...)
324 ms for finding 3942 lines containing [Jeri] using PellesC strstr
532 ms for finding 3942 lines containing [Jeri] using Masm32 InString
499 ms for finding 3942 lines containing [Jeri] using MB Instr_()
256 ms for finding 3942 lines containing [Jeri] using InstrW()
439 ms for finding 3186 lines containing [Jeric] using CRT strstr()
183 ms for finding 3186 lines containing [Jeric] using Instr_(fast, ...)
315 ms for finding 3186 lines containing [Jeric] using PellesC strstr
518 ms for finding 3186 lines containing [Jeric] using Masm32 InString
504 ms for finding 3186 lines containing [Jeric] using MB Instr_()
255 ms for finding 3186 lines containing [Jeric] using InstrW()
938 ms for Instr_(Fast, ...), fast : normal=0.585
1604 ms total for InstrWord
2083 ms for CRT strstr, crt : fast=2.22
1575 ms total for Pelles C
2572 ms total for Masm32
there's a little trick to that....
unblock the zip file before unzipping it
then, all the unzipped files are unblocked :P