Commit d99336a
src: replace naive search in Buffer::IndexOf
Adds the string search implementation from v8
which uses naive search if pattern length < 8
or to a specific badness then uses Boyer-Moore-Horspool
Added benchmark shows the expected improvements
Added option to use ucs2 encoding with Buffer::IndexOf
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
PR-URL: #25391 parent 3eaa593 commit d99336aCopy full SHA for d99336a
File tree
Expand file treeCollapse file tree
8 files changed
+4935
-60
lines changedOpen diff view settings
Filter options
- benchmark
- buffers
- fixtures
- lib
- src
- test/parallel
Expand file treeCollapse file tree
8 files changed
+4935
-60
lines changedOpen diff view settings
Collapse file
benchmark/buffers/buffer-indexof.js
Copy file name to clipboard+38Lines changed: 38 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | + |
Collapse file
benchmark/fixtures/alice.html
Copy file name to clipboardExpand all lines: benchmark/fixtures/alice.html+3,865Lines changed: 3865 additions & 0 deletions
Large diffs are not rendered by default.
Collapse file
+39-6Lines changed: 39 additions & 6 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
414 | 414 | |
415 | 415 | |
416 | 416 | |
| 417 | + |
| 418 | + |
| 419 | + |
| 420 | + |
| 421 | + |
| 422 | + |
| 423 | + |
| 424 | + |
| 425 | + |
| 426 | + |
| 427 | + |
| 428 | + |
417 | 429 | |
418 | | - |
| 430 | + |
| 431 | + |
| 432 | + |
| 433 | + |
| 434 | + |
| 435 | + |
| 436 | + |
| 437 | + |
| 438 | + |
| 439 | + |
| 440 | + |
| 441 | + |
| 442 | + |
| 443 | + |
| 444 | + |
| 445 | + |
| 446 | + |
| 447 | + |
419 | 448 | |
420 | 449 | |
421 | 450 | |
422 | 451 | |
423 | 452 | |
424 | 453 | |
425 | | - |
426 | | - |
427 | | - |
428 | | - |
429 | | - |
| 454 | + |
| 455 | + |
| 456 | + |
| 457 | + |
| 458 | + |
| 459 | + |
| 460 | + |
| 461 | + |
430 | 462 | |
| 463 | + |
431 | 464 | |
432 | 465 | |
433 | 466 | |
|
Collapse file
+1Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
169 | 169 | |
170 | 170 | |
171 | 171 | |
| 172 | + |
172 | 173 | |
173 | 174 | |
174 | 175 | |
|
Collapse file
+124-54Lines changed: 124 additions & 54 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
4 | 4 | |
5 | 5 | |
6 | 6 | |
| 7 | + |
7 | 8 | |
8 | 9 | |
9 | 10 | |
| ||
792 | 793 | |
793 | 794 | |
794 | 795 | |
795 | | - |
796 | | - |
797 | | - |
798 | | - |
799 | | - |
800 | | - |
801 | | - |
802 | | - |
803 | | - |
804 | | - |
805 | | - |
806 | | - |
807 | | - |
808 | | - |
809 | | - |
810 | | - |
811 | 796 | |
812 | 797 | |
813 | 798 | |
814 | 799 | |
| 800 | + |
| 801 | + |
| 802 | + |
| 803 | + |
815 | 804 | |
816 | 805 | |
817 | 806 | |
818 | | - |
819 | | - |
820 | | - |
| 807 | + |
| 808 | + |
| 809 | + |
| 810 | + |
| 811 | + |
| 812 | + |
| 813 | + |
| 814 | + |
| 815 | + |
| 816 | + |
| 817 | + |
| 818 | + |
821 | 819 | |
822 | | - |
823 | | - |
| 820 | + |
| 821 | + |
824 | 822 | |
825 | | - |
826 | | - |
| 823 | + |
| 824 | + |
| 825 | + |
827 | 826 | |
828 | | - |
| 827 | + |
829 | 828 | |
830 | 829 | |
831 | | - |
832 | | - |
833 | | - |
834 | | - |
| 830 | + |
835 | 831 | |
| 832 | + |
836 | 833 | |
837 | | - |
838 | | - |
839 | | - |
840 | | - |
| 834 | + |
| 835 | + |
| 836 | + |
| 837 | + |
| 838 | + |
| 839 | + |
| 840 | + |
| 841 | + |
| 842 | + |
| 843 | + |
| 844 | + |
| 845 | + |
| 846 | + |
| 847 | + |
| 848 | + |
| 849 | + |
| 850 | + |
| 851 | + |
| 852 | + |
| 853 | + |
| 854 | + |
| 855 | + |
| 856 | + |
| 857 | + |
| 858 | + |
| 859 | + |
| 860 | + |
| 861 | + |
| 862 | + |
| 863 | + |
| 864 | + |
| 865 | + |
| 866 | + |
| 867 | + |
| 868 | + |
| 869 | + |
| 870 | + |
| 871 | + |
| 872 | + |
| 873 | + |
| 874 | + |
| 875 | + |
841 | 876 | |
| 877 | + |
| 878 | + |
| 879 | + |
842 | 880 | |
843 | 881 | |
844 | 882 | |
845 | 883 | |
846 | 884 | |
| 885 | + |
| 886 | + |
| 887 | + |
| 888 | + |
847 | 889 | |
848 | 890 | |
849 | 891 | |
850 | | - |
851 | | - |
852 | 892 | |
853 | 893 | |
854 | 894 | |
855 | 895 | |
856 | | - |
857 | | - |
| 896 | + |
| 897 | + |
| 898 | + |
| 899 | + |
| 900 | + |
| 901 | + |
| 902 | + |
| 903 | + |
| 904 | + |
| 905 | + |
| 906 | + |
| 907 | + |
| 908 | + |
| 909 | + |
858 | 910 | |
859 | 911 | |
860 | | - |
| 912 | + |
861 | 913 | |
862 | | - |
| 914 | + |
863 | 915 | |
864 | 916 | |
865 | | - |
866 | | - |
867 | | - |
868 | | - |
| 917 | + |
869 | 918 | |
| 919 | + |
870 | 920 | |
871 | | - |
872 | | - |
873 | | - |
874 | | - |
| 921 | + |
875 | 922 | |
| 923 | + |
| 924 | + |
| 925 | + |
| 926 | + |
| 927 | + |
| 928 | + |
| 929 | + |
| 930 | + |
| 931 | + |
| 932 | + |
| 933 | + |
| 934 | + |
| 935 | + |
| 936 | + |
| 937 | + |
| 938 | + |
| 939 | + |
| 940 | + |
| 941 | + |
| 942 | + |
| 943 | + |
| 944 | + |
| 945 | + |
876 | 946 | |
877 | 947 | |
878 | 948 | |
| ||
882 | 952 | |
883 | 953 | |
884 | 954 | |
885 | | - |
886 | | - |
| 955 | + |
| 956 | + |
887 | 957 | |
888 | | - |
889 | | - |
| 958 | + |
| 959 | + |
890 | 960 | |
891 | 961 | |
892 | | - |
| 962 | + |
893 | 963 | |
894 | | - |
| 964 | + |
895 | 965 | |
896 | 966 | |
897 | 967 | |
898 | 968 | |
899 | 969 | |
900 | 970 | |
901 | 971 | |
902 | | - |
903 | | - |
| 972 | + |
| 973 | + |
904 | 974 | |
905 | 975 | |
906 | 976 | |
|
Collapse file
src/string_search.cc
Copy file name to clipboard+10Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
0 commit comments