jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
function base64Decode1(encoded) {
let str = encoded.replace(/-/g, '+').replace(/_/g, '/');
const pad = str.length % 4;
if (pad) {
str += '='.repeat(4 - pad);
}
try {
const decoded = atob(str);
return decodeURIComponent(
decoded
.split('')
.map((c) => `%${c.charCodeAt(0).toString(16).padStart(2, '0')}`)
.join(''),
);
} catch (e) {
console.error('Base64解码失败:', e);
return '';
}
}
function base64Decode2(base64String) {
// 处理 URL 安全的 Base64 字符
const sanitized = base64String
.replace(/-/g, '+')
.replace(/_/g, '/');
// 计算并添加必要的填充
const padLength = (4 - (sanitized.length % 4)) % 4;
const padded = sanitized + '='.repeat(padLength);
try {
// 解码为二进制字符串
const binaryString = atob(padded);
// 将二进制字符串转换为 UTF-8 字符串
const utf8String = new TextDecoder('utf-8').decode(
Uint8Array.from(binaryString, char => char.charCodeAt(0))
);
return utf8String;
} catch (e) {
throw new Error('无效的 Base64 字符串');
}
}
const data = 'W3RpOuiNo+iAgF0KW2FyOueOi+aZk+WkqV0KW2FsOuiNo+iAgF0KW2J5Ol0KW29mZnNldDowXQpbMDA6MDAuMDBd6I2j6ICAIC0g546L5pmT5aSpClswMDowNS42Ml3or43vvJrpq5jmmZPmnb4KWzAwOjExLjI1Xeabsu+8mumSsembtwpbMDA6MTYuODdd57yW5puy77ya566A5rSBClswMDoyMi41MF3kvaDlkKzov5zlpITnmoTlo7Dlo7Dmsb3nrJsKWzAwOjI2LjExXQpbMDA6MjcuMjZd5Yu+5YuS5Ye65qKm5aKD5Lit55qE5bKb5bG/ClswMDozMC42OF0KWzAwOjMyLjQyXeWcqOa4heaZqOa8q+S4iuWyuOeahOa1t+a1qgpbMDA6MzYuMjddClswMDozNy4zMF3mmK/kuJbnlYzlsL3lpLTnmoTlm57lk40KWzAwOjQxLjg5XQpbMDA6NDIuNDdd5L2g55yL6YKj5LqR5LiK6I2J6ZW/6I666aOeClswMDo0NS45MF0KWzAwOjQ3LjI4Xee7veaUvuedgOaYjuWkqee6ouiJsueahOiKseiVigpbMDA6NTEuNjZdClswMDo1Mi4yNV3miJDplb/kuo7oi43ojKvojKvnmoTlvILkuaEKWzAwOjU1LjcyXQpbMDA6NTcuMjZd5Zue6aaW5L6d54S25pyb6KeB5pWF5Lmh5pyI5LquClswMTowNC4wM13pu5HlpJznu5nkuobmiJHpu5HoibLnnLznnZsKWzAxOjA5LjA2XeaIkeWNtOeUqOWug+WOu+Wvu+aJvuWFieaYjgpbMDE6MTMuODNd5rGX5rC05Yed57uT5oiQ5pe25YWJ6IO25ZuKClswMToxOC44NF3ni6zoh6rlnKjov5nlkb3ov5Dph4zmi5PojZIKWzAxOjIzLjg1XeWNleaequWMuemprOS4juS4lueVjOWvuemlrgpbMDE6MjguODFd5Y6G57uP56Oo6Zq+5Lqm5LiN5b+Y5Yid5b+DClswMTozMy44MV3lgZroh6rlt7HojaPogIDnmoTpqpHlo6sKWzAxOjM3Ljk3XeWLh+aVoui/vemAkOaipuaDs+eahOe6ouaXpQpbMDE6NDQuODRdClswMjowNC45Ml3kvaDlkKzov5zlpITnmoTlo7Dlo7Dmsb3nrJsKWzAyOjA4LjEzXQpbMDI6MDkuNzZd5Yu+5YuS5Ye65qKm5aKD5Lit55qE5bKb5bG/ClswMjoxMy4zM10KWzAyOjE0Ljc3XeWcqOa4heaZqOa8q+S4iuWyuOeahOa1t+a1qgpbMDI6MTguNDVdClswMjoxOS43Nl3mmK/kuJbnlYzlsL3lpLTnmoTlm57lk40KWzAyOjI0LjE1XQpbMDI6MjQuOTFd5L2g55yL6YKj5LqR5LiK6I2J6ZW/6I666aOeClswMjoyOC4wOV0KWzAyOjI5Ljc5Xee7veaUvuedgOaYjuWkqee6ouiJsueahOiKseiVigpbMDI6MzMuNzhdClswMjozNC43NF3miJDplb/kuo7oi43ojKvojKvnmoTlvILkuaEKWzAyOjM5LjEzXQpbMDI6MzkuODVd5Zue6aaW5L6d54S25pyb6KeB5pWF5Lmh5pyI5LquClswMjo0Ni40Nl3pu5HlpJznu5nkuobmiJHpu5HoibLnnLznnZsKWzAyOjUxLjM3XeaIkeWNtOeUqOWug+WOu+Wvu+aJvuWFieaYjgpbMDI6NTYuMzBd5rGX5rC05Yed57uT5oiQ5pe25YWJ6IO25ZuKClswMzowMS40MF3ni6zoh6rlnKjov5nlkb3ov5Dph4zmi5PojZIKWzAzOjA2LjMzXeWNleaequWMuemprOS4juS4lueVjOWvuemlrgpbMDM6MTEuMzRd5Y6G57uP56Oo6Zq+5Lqm5LiN5b+Y5Yid5b+DClswMzoxNi4yOV3lgZroh6rlt7HojaPogIDnmoTpqpHlo6sKWzAzOjIwLjQzXeWLh+aVoui/vemAkOaipuaDs+eahOe6ouaXpQpbMDM6MjYuMzJd6buR5aSc57uZ5LqG5oiR6buR6Imy55y8552bClswMzozMS4zOF3miJHljbTnlKjlroPljrvlr7vmib7lhYnmmI4KWzAzOjM2LjMyXeaxl+awtOWHnee7k+aIkOaXtuWFieiDtuWbigpbMDM6NDEuMzhd54us6Ieq5Zyo6L+Z5ZG96L+Q6YeM5ouT6I2SClswMzo0Ni4yOF3ljZXmnqrljLnpqazkuI7kuJbnlYzlr7nppa4KWzAzOjUxLjQ0XeWOhue7j+ejqOmavuS6puS4jeW/mOWIneW/gwpbMDM6NTYuMzBd5YGa6Ieq5bex6I2j6ICA55qE6aqR5aOrClswNDowMC40Nl3li4fmlaLov73pgJDmoqbmg7PnmoTnuqLml6UKWzA0OjA3LjU5XQpbMDQ6MTUuODVd5YuH5pWi6L+96YCQ5qKm5oOz55qE57qi5pel'
Ready to run.
| Test | Ops/sec | |
|---|---|---|
| 1 | | ready |
| 2 | | ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.