RESULTS-v24.md
October 15, 2025 ยท View on GitHub
Adding property
| name | ops/sec | samples |
|---|---|---|
| Directly in the object | 77,851,271 | 39031866 |
| Using dot notation | 78,379,137 | 39189578 |
| Using define property (writable) | 4,964,864 | 2482434 |
| Using define property initialized (writable) | 6,984,363 | 3492528 |
| Using define property (getter) | 2,311,256 | 1155808 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 20:50:32 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Array.append (number)
| type | amount | time elapsed |
|---|---|---|
| array.push | 10 | 0.004ms |
| new Array(length) | 10 | 0.002ms |
| array.push | 100 | 0.023ms |
| new Array(length) | 100 | 0.008ms |
| array.push | 1,000 | 0.037ms |
| new Array(length) | 1,000 | 0.021ms |
| array.push | 10,000 | 0.457ms |
| new Array(length) | 10,000 | 0.253ms |
| array.push | 1,000,000 | 28.209ms |
| new Array(length) | 1,000,000 | 7.835ms |
| array.push | 10,000,000 | 238.906ms |
| new Array(length) | 10,000,000 | 68.185ms |
Array.append (string)
| type | amount | time elapsed |
|---|---|---|
| array.push | 10 | 0.004ms |
| new Array(length) | 10 | 0.003ms |
| array.push | 100 | 0.015ms |
| new Array(length) | 100 | 0.011ms |
| array.push | 1,000 | 0.036ms |
| new Array(length) | 1,000 | 0.018ms |
| array.push | 10,000 | 0.383ms |
| new Array(length) | 10,000 | 0.13ms |
| array.push | 1,000,000 | 18.097ms |
| new Array(length) | 1,000,000 | 11.014ms |
| array.push | 10,000,000 | 360.993ms |
| new Array(length) | 10,000,000 | 51.209ms |
Array Creation
| name | ops/sec | samples |
|---|---|---|
| new Array | 303 | 152 |
| Array.from | 23 | 12 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 20:56:59 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Blob
| name | ops/sec | samples |
|---|---|---|
| new Blob (128) | 4,998 | 2500 |
| new Blob (1024) | 672 | 343 |
| text (128) | 4,705 | 2358 |
| text (1024) | 581 | 291 |
| arrayBuffer (128) | 4,692 | 2347 |
| arrayBuffer (1024) | 580 | 292 |
| slice (0, 64) | 153,435 | 85077 |
| slice (0, 512) | 31,069 | 15539 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:02:08 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Compression algorithms
| name | total time | samples |
|---|---|---|
| Deflate | 133.97 ms | 1 |
| Gzip | 136.11 ms | 1 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:10:08 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Crypto Verify
| name | ops/sec | samples |
|---|---|---|
| crypto.createVerify('RSA-SHA256') | 21,444 | 10723 |
| crypto.verify('RSA-SHA256') | 21,578 | 10804 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:14:28 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Date toISOString
| name | ops/sec | samples |
|---|---|---|
| new Date().toISOString() | 1,565,729 | 782865 |
| fromUnixToISOString(new Date()) | 2,996,484 | 1498363 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:18:58 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Date format MM/DD/YYYY
| name | ops/sec | samples |
|---|---|---|
| Intl.DateTimeFormat().format(Date.now()) | 22,109 | 11055 |
| Intl.DateTimeFormat().format(new Date()) | 20,827 | 10414 |
| Intl.DateTimeFormat(undefined, twoDigitsLocaleOptions).format(Date.now()) | 21,044 | 10523 |
| Intl.DateTimeFormat(undefined, twoDigitsLocaleOptions).format(new Date()) | 19,934 | 9968 |
| Reusing Intl.DateTimeFormat() | 444,691 | 222348 |
| Date.toLocaleDateString() | 1,048,253 | 524132 |
| Date.toLocaleDateString(undefined, twoDigitsLocaleOptions) | 26,403 | 13203 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:22:52 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Date String coersion
| name | ops/sec | samples |
|---|---|---|
| Using String() | 1,109,727 | 554888 |
| Using brackets {} | 1,115,874 | 558044 |
| Using '' + | 1,118,676 | 559917 |
| Using date.toString() | 1,262,021 | 631012 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:26:29 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Deleting properties
| name | ops/sec | samples |
|---|---|---|
| Using delete property | 4,211,499 | 2105821 |
| Using delete property (proto: null) | 18,246,343 | 9125807 |
| Using delete property (cached proto: null) | 4,305,800 | 2153307 |
| Using undefined assignment | 79,334,063 | 39673481 |
| Using undefined assignment (proto: null) | 20,417,028 | 10215241 |
| Using undefined property (cached proto: null) | 78,733,874 | 39370890 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:31:45 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Node.js Error
| name | ops/sec | samples |
|---|---|---|
| Error | 355,748 | 177898 |
| NodeError | 325,767 | 162891 |
| NodeError Range | 311,059 | 155565 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:36:48 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Array.includes vs raw comparison
| name | ops/sec | samples |
|---|---|---|
| using Array.includes | 68,517,543 | 34263713 |
| using Array.includes (first item) | 73,639,854 | 36819936 |
| Using raw comparison | 99,095,517 | 49547868 |
| Using raw comparison (first item) | 96,268,417 | 48145794 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:40:39 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Object.keys vs Object.getOwnPropertyNames comparison
| name | ops/sec | samples |
|---|---|---|
| Using Object.keys() | 44,420,195 | 22211728 |
| Using Object.getOwnPropertyNames() | 47,639,460 | 23826904 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:43:14 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Get the last item of an Array
| name | ops/sec | samples |
|---|---|---|
| Length = 100 - Array.at | 91,613,130 | 45806576 |
| Length = 10_000 - Array.at | 90,904,931 | 45452473 |
| Length = 1_000_000 - Array.at | 91,665,790 | 45832921 |
| Length = 100 - Array[length - 1] | 89,528,530 | 44764291 |
| Length = 10_000 - Array[length - 1] | 90,686,142 | 45383290 |
| Length = 1_000_000 - Array[length - 1] | 90,670,134 | 45335179 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:49:31 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Math.floor vs ~
| name | ops/sec | samples |
|---|---|---|
| Math.floor (small) | 89,274,994 | 44650992 |
| ~ (small) | 95,382,162 | 47691099 |
| Math.floor (long) | 95,054,380 | 47535973 |
| ~ (long) | 95,733,572 | 47866795 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:53:16 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Object Creation
| name | ops/sec | samples |
|---|---|---|
| Object.create(null) | 36,792,862 | 18401246 |
| Object.create({}) | 2,056,363 | 1028183 |
| new Function with empty prototype | 67,269,458 | 33638643 |
| Empty class | 77,857,243 | 38940124 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 21:56:26 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Parsing Integer
| name | ops/sec | samples |
|---|---|---|
| Using parseInt(x, 10) - small number (2 len) | 95,619,904 | 47868658 |
| Using parseInt(x, 10) - big number (10 len) | 95,955,693 | 47977853 |
| Using + - small number (2 len) | 94,720,125 | 47404866 |
| Using + - big number (10 len) | 92,308,080 | 46154139 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:01:20 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Possible undefined Function
| name | ops/sec | samples |
|---|---|---|
| Using if to check function existence | 1,062,706 | 531364 |
| Using ? operator to avoid rejection | 1,110,436 | 557069 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:02:56 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Private Property
| name | ops/sec | samples |
|---|---|---|
| Raw usage private field | 93,860,771 | 46931176 |
| Raw usage underscore usage | 97,058,813 | 48598604 |
| Manipulating private properties using # | 97,606,408 | 48803233 |
| Manipulating private properties using underscore(_) | 95,906,007 | 47953012 |
| Manipulating private properties using Symbol | 97,889,240 | 48944631 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:09:04 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Property access after shape transition
| name | ops/sec | samples |
|---|---|---|
| Adding property after object creation - small object | 7,348,498 | 3674290 |
| Adding property in the object creation - small object | 7,394,150 | 3697077 |
| Adding property after the function creation - small class | 275,386 | 137695 |
| Adding property in the function creation - small class | 281,506 | 140755 |
| Adding property after the class creation - small class | 272,497 | 139928 |
| Adding property in the class creation - small class | 278,505 | 139253 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:13:42 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Property Getter Access
| name | ops/sec | samples |
|---|---|---|
| Getter (class) | 86,609,551 | 43572828 |
| Getter | 52,407,084 | 26209954 |
| Method | 95,371,576 | 47686644 |
| DefineProperty (getter) | 95,104,989 | 47554359 |
| DefineProperty (getter & enumerable=false) | 53,396,123 | 26698073 |
| DefineProperty (getter & configurable=false) | 94,642,376 | 47321193 |
| DefineProperty (getter & enumerable=false & configurable=false) | 53,902,536 | 26953099 |
| DefineProperty (writable) | 96,042,673 | 48021437 |
| DefineProperty (writable & enumerable=false) | 93,318,254 | 46811880 |
| DefineProperty (writable & enumerable=false & configurable=false) | 94,907,783 | 47459619 |
| DefineProperties (getter) | 53,483,654 | 26742312 |
| DefineProperties (getter & enumerable=false) | 53,736,811 | 26871334 |
| DefineProperties (getter & enumerable=false & configurable=false) | 53,699,674 | 26862936 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:15:09 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Property Setter Access
| name | ops/sec | samples |
|---|---|---|
| Setter (class) | 90,514,917 | 45257483 |
| Setter | 10,491,199 | 5245603 |
| Method | 90,010,790 | 45005397 |
| DefineProperty (setter) | 90,484,057 | 45242860 |
| DefineProperty (setter & enumerable=false) | 10,533,931 | 5267045 |
| DefineProperty (setter & configurable=false) | 10,614,540 | 5307479 |
| DefineProperty (setter & enumerable=false & configurable=false) | 10,620,809 | 5310654 |
| DefineProperty (writable) | 90,478,471 | 45257623 |
| DefineProperty (writable & enumerable=false) | 89,407,968 | 44704164 |
| DefineProperty (writable & enumerable=false & configurable=false) | 90,798,983 | 45400091 |
| DefineProperties (setter) | 90,821,200 | 45415624 |
| DefineProperties (setter & enumerable=false) | 10,478,683 | 5239345 |
| DefineProperties (setter & enumerable=false & configurable=false) | 10,489,036 | 5244521 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:20:38 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
replace vs replaceAll comparison
| name | ops/sec | samples |
|---|---|---|
| Using replace(//g) | 3,997,308 | 1998993 |
| Using replaceAll() | 3,107,923 | 1553963 |
| Using replaceAll(//g) | 3,454,443 | 1727604 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:27:13 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Shallow Copy
| name | ops/sec | samples |
|---|---|---|
| { ...object } | 24,706,208 | 12353976 |
| { ...object, proto: null } | 2,359,645 | 1180748 |
| { ...object, newProp: true } | 23,531,552 | 11765780 |
| structuredClone | 291,433 | 145717 |
| JSON.parse + JSON.stringify | 312,694 | 156348 |
| loop + object.keys starting with {} | 1,730,555 | 865383 |
| loop + object.keys starting with { proto: null } | 933,491 | 466822 |
| loop + object.keys starting with { randomProp: true } | 684,452 | 342305 |
| object.keys + reduce(FN, {}) | 1,780,388 | 890195 |
| object.keys + reduce(FN, { proto: null }) | 945,635 | 472890 |
| object.keys + reduce(FN, { newProp: true }) | 705,259 | 352692 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:31:19 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Sorting Map
| name | ops/sec | samples |
|---|---|---|
| Sort using default | 323,714 | 161862 |
| Sort using first char | 1,348,933 | 674530 |
| Sort using localeCompare | 1,241,749 | 620964 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:36:59 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Object.assign VS spread operator
| name | ops/sec | samples |
|---|---|---|
| {...bigObject} - Total keys: 1000 | 3,058 | 1530 |
| {...smallObject} - Total keys: 2 | 40,841,740 | 20420981 |
| Object.assign({}, bigObject, anotherBigObject) - Total keys: 1000 - creating new object | 1,094 | 548 |
| Object.assign(bigObject, anotherBigObject) - mutating bigObject | 6,189 | 3095 |
| { ...bigObject, ...anotherBigObject } | 1,518 | 760 |
| Object.assign({}, smallObject, anotherSmallObject) - creating new object | 12,489,273 | 6244644 |
| Object.assign(smallObject, anotherSmallObject) - mutating smallObject | 27,859,209 | 13929840 |
| { ...smallObject, ...anotherSmallObject } | 20,392,377 | 10198596 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:40:58 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Stream.Readable
| name | ops/sec | samples |
|---|---|---|
| streams.Readable reading 1e3 * "some data" | 2,054 | 1028 |
| streams.web.Readable reading 1e3 * "some data" | 1,755 | 879 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:46:45 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Stream.Writable
| name | ops/sec | samples |
|---|---|---|
| streams.Writable writing 1e3 * "some data" | 10,066 | 5034 |
| streams.web.WritableStream writing 1e3 * "some data" | 1,662 | 892 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:50:43 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
String concat
| name | ops/sec | samples |
|---|---|---|
| Using + sign | 94,885,189 | 47481732 |
| Using backtick (`) | 95,026,215 | 47513578 |
| Using array.join | 10,688,593 | 5345232 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:53:55 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
endsWith comparison
| name | ops/sec | samples |
|---|---|---|
| (short string) (true) String#endsWith | 81,513,886 | 40756945 |
| (short string) (true) String#slice and strict comparison | 56,440,801 | 28223929 |
| (long string) (true) String#endsWith | 67,652,961 | 33829303 |
| (long string) (true) String#slice and strict comparison | 51,395,418 | 25703665 |
| (short string) (false) String#endsWith | 88,438,401 | 44219212 |
| (short string) (false) String#slice and strict comparison | 57,707,460 | 28853735 |
| (long string) (false) String#endsWith | 82,542,140 | 41271090 |
| (long string) (false) String#slice and strict comparison | 52,645,881 | 26322947 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 22:58:01 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
String searching
| name | ops/sec | samples |
|---|---|---|
| Using includes | 16,601,206 | 8300611 |
| Using indexof | 16,611,657 | 8307148 |
| Using RegExp.test | 12,682,624 | 6341816 |
| Using RegExp.text with cached regex pattern | 13,536,979 | 6768493 |
| Using new RegExp.test | 4,641,146 | 2320574 |
| Using new RegExp.test with cached regex pattern | 5,275,756 | 2638445 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 23:01:50 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
startsWith comparison
| name | ops/sec | samples |
|---|---|---|
| (short string) (true) String#startsWith | 73,973,518 | 36986768 |
| (short string) (true) String#slice and strict comparison | 56,174,721 | 28088050 |
| (long string) (true) String#startsWith | 64,344,946 | 32175480 |
| (long string) (true) String#slice and strict comparison | 52,310,438 | 26155228 |
| (short string) (false) String#startsWith | 80,088,222 | 40045416 |
| (short string) (false) String#slice and strict comparison | 58,149,076 | 29081341 |
| (long string) (false) String#startsWith | 78,313,627 | 39158047 |
| (long string) (false) String#slice and strict comparison | 52,871,014 | 26435517 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 23:05:03 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Super vs This
| name | ops/sec | samples |
|---|---|---|
| Using super | 91,800,391 | 45900221 |
| Using this | 98,700,763 | 49350393 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 23:11:47 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0
Getting unix time
| name | ops/sec | samples |
|---|---|---|
| new Date().getTime() | 12,582,196 | 6292043 |
| Date.now() | 20,385,432 | 10193865 |
Environment
- Machine: linux x64 | 4 vCPUs | 7.6GB Mem
- Run: Wed Oct 15 2025 23:15:03 GMT+0000 (Coordinated Universal Time)
- Node:
v24.9.0