如何用最短的JavaScript代码消耗最多的时间?
在V2上看到了这样一个问题
如何用最短的JavaScript代码消耗最多的时间?
让函数 f 运行 10s 以上,最终输出 true,代码越短越好。(不能有交互。)
// 挑战目标:让函数 f 运行 10s 以上,代码越短越好
function f() {
// 在此写入你的代码:
// ...
}
(function() {
var now = Date.now;
var t1 = now();
f();
var t2 = now();
console.log(t2 - t1 > 10000);
})();
首选当然是这种调调↓ 能拖一秒算一秒
function f() {
// 在此写入你的代码:
// ...
setTimeout(()=>{alert("10 秒过了")},10000)
}
但是想想并不妥,在 setTimeout 将函数和数值交给 WebAPI 了以后 f() 就退出了。而上述测试代码是看 f() 运行前后的时间差。
唉
如果允许加载一段外部 js 的话~
随便挂一段挖矿病毒进去吧!(不过最近好像比较赔钱……算了
无法匹配正则是最消耗时间的:
function f1() {
return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxx") || true; // 10s
}
function f2() {
return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxxx") || true; // 20s
}
不对单位好像错了……
再来一个
单位错了,是 10ms 和 20ms
增加到 30 个 x 可以超过 10s
function f3() {
return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") || true; // > 10s
}
再不行只能逼我出绝招了!
function f() {
alert("hello world --joynop!")
}
(function() {
var now = Date.now;
var t1 = now();
f();
var t2 = now();
console.log(t2 - t1 > 10000);
})();
阻断就行了,你不点想要多久都 ok
啧啧啧
等会……
是让 CPU 跑十秒?
还是让浏览器窗口卡十秒??
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭