|
2 | 2 |
|
3 | 3 | ## Test Environment |
4 | 4 |
|
5 | | -- **OS**: Windows 11 - WSL2 (Ubuntu 22.04.4 LTS) |
6 | | -- **CPU**: AMD Ryzen 9 5900HX 3.30 GHz (Benchmark constrained to 1 CPU core) |
7 | | -- **RAM**: 64 GB (Benchmark constrained to 512 MB) |
| 5 | +- **OS**: macOS Sequoia |
| 6 | +- **CPU**: Apple M4 Max (Benchmark constrained to 1 CPU core) |
| 7 | +- **RAM**: 36 GB (Benchmark constrained to 512 MB) |
8 | 8 |
|
9 | 9 | ### Benchmarks |
10 | 10 |
|
11 | | -#### v3.1.1 |
| 11 | +#### v3.2.0 |
12 | 12 | ``` |
13 | 13 | benchmark-1 | Using test data: v1 |
14 | | -benchmark-1 | exists() - small clean text x 2,559,368 ops/sec ±2.95% (92 runs sampled) |
15 | | -benchmark-1 | exists() - small profane text x 1,941,051 ops/sec ±5.64% (79 runs sampled) |
16 | | -benchmark-1 | exists() - large clean text x 44,904 ops/sec ±5.60% (90 runs sampled) |
17 | | -benchmark-1 | exists() - large profane text x 816,615 ops/sec ±0.74% (96 runs sampled) |
18 | | -benchmark-1 | exists() - partial match, small profane text x 1,853,445 ops/sec ±28.20% (92 runs sampled) |
19 | | -benchmark-1 | censor() - Word, small profane text x 1,559,873 ops/sec ±2.07% (94 runs sampled) |
20 | | -benchmark-1 | censor() - FirstChar, small profane text x 1,548,998 ops/sec ±6.01% (96 runs sampled) |
21 | | -benchmark-1 | censor() - FirstVowel, small profane text x 1,093,426 ops/sec ±5.54% (89 runs sampled) |
22 | | -benchmark-1 | censor() - AllVowels, small profane text x 1,098,984 ops/sec ±0.64% (91 runs sampled) |
23 | | -benchmark-1 | censor() - Word, large profane text x 1,633 ops/sec ±6.12% (91 runs sampled) |
24 | | -benchmark-1 | censor() - partial match, Word, small profane text x 1,334,764 ops/sec ±5.43% (91 runs sampled) |
| 14 | +benchmark-1 | exists() - small profane text x 4,919,588 ops/sec ±1.31% (97 runs sampled) |
| 15 | +benchmark-1 | exists() - small profane text (unicode on) x 1,741,222 ops/sec ±1.06% (97 runs sampled) |
| 16 | +benchmark-1 | exists() - large clean text x 76,568 ops/sec ±1.25% (93 runs sampled) |
| 17 | +benchmark-1 | exists() - large clean text (unicode on) x 14,514 ops/sec ±2.70% (93 runs sampled) |
| 18 | +benchmark-1 | censor() - Word, small profane text x 3,076,329 ops/sec ±0.47% (95 runs sampled) |
| 19 | +benchmark-1 | censor() - Word, small profane text (unicode on) x 1,244,954 ops/sec ±2.64% (95 runs sampled) |
| 20 | +benchmark-1 | censor() - Word, large profane text x 2,359 ops/sec ±3.09% (98 runs sampled) |
| 21 | +benchmark-1 | censor() - Word, large profane text (unicode on) x 2,208 ops/sec ±0.60% (98 runs sampled) |
| 22 | +benchmark-1 | exists() - small clean text x 5,237,609 ops/sec ±0.56% (98 runs sampled) |
| 23 | +benchmark-1 | exists() - large clean text x 66,847 ops/sec ±2.55% (87 runs sampled) |
| 24 | +benchmark-1 | exists() - large profane text x 1,306,546 ops/sec ±2.49% (96 runs sampled) |
| 25 | +benchmark-1 | exists() - partial match, small profane text x 4,337,740 ops/sec ±1.95% (97 runs sampled) |
| 26 | +benchmark-1 | censor() - Word, small profane text x 2,941,414 ops/sec ±1.23% (98 runs sampled) |
| 27 | +benchmark-1 | censor() - FirstChar, small profane text x 2,926,360 ops/sec ±2.21% (96 runs sampled) |
| 28 | +benchmark-1 | censor() - FirstVowel, small profane text x 2,275,768 ops/sec ±2.97% (94 runs sampled) |
| 29 | +benchmark-1 | censor() - AllVowels, small profane text x 2,176,117 ops/sec ±2.73% (90 runs sampled) |
| 30 | +benchmark-1 | censor() - Word, large profane text x 2,345 ops/sec ±1.02% (97 runs sampled) |
| 31 | +benchmark-1 | censor() - partial match, Word, small profane text x 2,630,832 ops/sec ±2.23% (95 runs sampled) |
25 | 32 | benchmark-1 | Fastest: exists() - small clean text |
26 | 33 | ``` |
27 | 34 |
|
28 | | -#### v3.0.1 |
| 35 | +#### v3.1.1 |
29 | 36 | ``` |
30 | 37 | benchmark-1 | Using test data: v1 |
31 | | -benchmark-1 | exists() - small clean text x 2,357,978 ops/sec ±3.50% (86 runs sampled) |
32 | | -benchmark-1 | exists() - small profane text x 1,705,114 ops/sec ±6.80% (77 runs sampled) |
33 | | -benchmark-1 | exists() - large clean text x 47,741 ops/sec ±1.74% (94 runs sampled) |
34 | | -benchmark-1 | exists() - large profane text x 817,113 ops/sec ±0.64% (94 runs sampled) |
35 | | -benchmark-1 | exists() - partial match, small profane text x 2,144,550 ops/sec ±5.92% (94 runs sampled) |
36 | | -benchmark-1 | censor() - Word, small profane text x 1,506,507 ops/sec ±6.02% (91 runs sampled) |
37 | | -benchmark-1 | censor() - FirstChar, small profane text x 1,507,623 ops/sec ±5.90% (92 runs sampled) |
38 | | -benchmark-1 | censor() - FirstVowel, small profane text x 1,105,023 ops/sec ±0.79% (88 runs sampled) |
39 | | -benchmark-1 | censor() - AllVowels, small profane text x 1,054,991 ops/sec ±5.46% (89 runs sampled) |
40 | | -benchmark-1 | censor() - Word, large profane text x 1,659 ops/sec ±5.81% (89 runs sampled) |
41 | | -benchmark-1 | censor() - partial match, Word, small profane text x 1,503,000 ops/sec ±0.55% (94 runs sampled) |
| 38 | +benchmark-1 | exists() - small clean text x 5,260,719 ops/sec ±0.49% (94 runs sampled) |
| 39 | +benchmark-1 | exists() - small profane text x 4,794,042 ops/sec ±0.64% (97 runs sampled) |
| 40 | +benchmark-1 | exists() - large clean text x 70,614 ops/sec ±0.22% (98 runs sampled) |
| 41 | +benchmark-1 | exists() - large profane text x 1,272,295 ops/sec ±3.32% (93 runs sampled) |
| 42 | +benchmark-1 | exists() - partial match, small profane text x 4,408,923 ops/sec ±2.96% (99 runs sampled) |
| 43 | +benchmark-1 | censor() - Word, small profane text x 2,911,216 ops/sec ±3.69% (97 runs sampled) |
| 44 | +benchmark-1 | censor() - FirstChar, small profane text x 3,024,875 ops/sec ±0.30% (94 runs sampled) |
| 45 | +benchmark-1 | censor() - FirstVowel, small profane text x 2,235,900 ops/sec ±2.53% (97 runs sampled) |
| 46 | +benchmark-1 | censor() - AllVowels, small profane text x 2,205,688 ops/sec ±2.80% (95 runs sampled) |
| 47 | +benchmark-1 | censor() - Word, large profane text x 2,458 ops/sec ±0.37% (99 runs sampled) |
| 48 | +benchmark-1 | censor() - partial match, Word, small profane text x 2,716,684 ops/sec ±2.88% (97 runs sampled) |
42 | 49 | benchmark-1 | Fastest: exists() - small clean text |
43 | 50 | ``` |
44 | 51 |
|
45 | | -#### v3.0.0 |
46 | | -``` |
47 | | -Using test data: v1 |
48 | | -exists() - small clean text x 2,263,763 ops/sec ±3.96% (83 runs sampled) |
49 | | -exists() - small profane text x 1,831,670 ops/sec ±3.09% (86 runs sampled) |
50 | | -exists() - large clean text x 38,185 ops/sec ±2.82% (84 runs sampled) |
51 | | -exists() - large profane text x 686,951 ops/sec ±2.11% (87 runs sampled) |
52 | | -exists() - partial match, small profane text x 1,624,503 ops/sec ±8.02% (78 runs sampled) |
53 | | -censor() - Word, small profane text x 915,620 ops/sec ±6.16% (83 runs sampled) |
54 | | -censor() - FirstChar, small profane text x 1,275,945 ops/sec ±2.68% (77 runs sampled) |
55 | | -censor() - FirstVowel, small profane text x 902,065 ops/sec ±3.43% (81 runs sampled) |
56 | | -censor() - AllVowels, small profane text x 942,445 ops/sec ±2.94% (84 runs sampled) |
57 | | -censor() - Word, large profane text x 5,578 ops/sec ±2.17% (86 runs sampled) |
58 | | -censor() - partial match, Word, small profane text x 869,941 ops/sec ±7.91% (82 runs sampled) |
59 | | -Fastest: exists() - small clean text |
60 | | -``` |
61 | | - |
62 | | -#### v2.4.0 |
63 | | -``` |
64 | | -Using test data: v1 |
65 | | -exists() - small clean text x 3,838,466 ops/sec ±3.34% (81 runs sampled) |
66 | | -exists() - small profane text x 2,557,317 ops/sec ±7.47% (74 runs sampled) |
67 | | -exists() - large clean text x 41,031 ops/sec ±2.82% (83 runs sampled) |
68 | | -exists() - large profane text x 799,283 ops/sec ±2.16% (83 runs sampled) |
69 | | -exists() - partial match, small profane text x 3,013,455 ops/sec ±5.68% (88 runs sampled) |
70 | | -censor() - Word, small profane text x 1,328,481 ops/sec ±2.17% (86 runs sampled) |
71 | | -censor() - FirstChar, small profane text x 2,197,796 ops/sec ±5.86% (84 runs sampled) |
72 | | -censor() - FirstVowel, small profane text x 1,184,065 ops/sec ±4.31% (75 runs sampled) |
73 | | -censor() - AllVowels, small profane text x 1,105,599 ops/sec ±7.69% (77 runs sampled) |
74 | | -censor() - Word, large profane text x 5,594 ops/sec ±6.02% (85 runs sampled) |
75 | | -censor() - partial match, Word, small profane text x 1,031,901 ops/sec ±2.86% (81 runs sampled) |
76 | | -Fastest: exists() - small clean text |
77 | | -``` |
| 52 | +> NOTE: previous benchmarks performed in deprecated Test Environments can be viewed in Git history |
0 commit comments