Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
JS string split fix Len
(version: 4)
Comparing performance of:
regex vs Slice vs Prealloc slice vs Substr vs Loop
Created:
9 months ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
let chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; let parts = []; for (let i = 0; i < 1000; i++) { const len = Math.floor(Math.random() * 200) + 1; let str = ''; for (let j = 0; j < len; j++) { str += chars[Math.floor(Math.random() * chars.length)]; } parts.push(str); } const testData = parts.join(','); chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; parts = []; for (let i = 0; i < 1000; i++) { const subparts = []; const numSubparts = Math.floor(Math.random() * 5) + 1; for (let j = 0; j < numSubparts; j++) { const len = Math.floor(Math.random() * 100) + 1; let str = ''; for (let k = 0; k < len; k++) { str += chars[Math.floor(Math.random() * chars.length)]; } subparts.push(str); } parts.push(subparts.join(';')); } const testData2 = parts.join(',');
Tests:
regex
testData2.split(',').map(p => p.split(';'))
Slice
testData.split(',').map(p => { const r = []; for (let i = 0; i < p.length; i += 12) r.push(p.slice(i, i + 12)); return r; })
Prealloc slice
testData.split(',').map(p => { const r = new Array(Math.ceil(p.length / 12)); for (let i = 0, j = 0; i < p.length; i += 12, j++) { r[j] = p.slice(i, i + 12); } return r; })
Substr
testData.split(',').map(p => { const r = []; for (let i = 0; i < p.length; i += 12) r.push(p.substring(i, i + 12)); return r; })
Loop
testData.split(',').map(p => { const r = []; let i = 0; while (i < p.length) { r.push(p.slice(i, i += 12)); } return r; })
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (5)
Previous results
Fork
Test case name
Result
regex
Slice
Prealloc slice
Substr
Loop
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
9 months ago
)
User agent:
Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/129.0.6668.69 Mobile/15E148 Safari/604.1
Browser/OS:
Chrome Mobile iOS 129 on iOS 18.6
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
regex
8664.0 Ops/sec
Slice
6781.4 Ops/sec
Prealloc slice
7148.3 Ops/sec
Substr
6982.7 Ops/sec
Loop
6500.8 Ops/sec
Related benchmarks:
Text.data vs Text.nodeValue
Lodash _.some vs _.includes
Split vs Spread (randomized)
lodash _.some vs Array.some
string concat big string
normalize / trim text
generateRandomString
String character looping
endsWith vs at vs trimEnd vs Regex
Comments
Confirm delete:
Do you really want to delete benchmark?