【发布时间】:2026-01-31 02:25:01
【问题描述】:
从0到10000000的循环分别用swift、js、flutter测试。
快速时间:2887 毫秒
js 时间:13 毫秒
颤动时间:10 毫秒
Swift 代码:
var x = 0
let start = Date()
for i in 0..<10000000 {
x += i
}
let time = Int(Date().timeIntervalSince(start) * 1000)
print("time: \(time) ms") //time: 2887 ms
JS代码:
var x = 0
const start = (+new Date())
for(var i=0;i<10000000;i++) {
x += i
}
const time = new Date() - start;
console.log('time: ' + time + 'ms') //time: 13ms
颤振代码:
int x = 0;
var start = DateTime.now();
for (int i = 0; i < 10000000; i ++) {
x += i;
}
var time = DateTime.now().difference(start).inMilliseconds;
print('time: ' + time.toString() + 'ms'); //time: 10ms
【问题讨论】:
-
在编译的程序中还是在操场上?也许你可以使用 CFAbsoluteTimeGetCurrent() 减少一毫秒,这样你就不需要强制转换了 ;)
-
如果使用“Release”配置编译,即启用优化,则在我的 MacBook 上运行 4 毫秒。
-
@MartinR 非常感谢您的帮助。我按照你说的设置解决了这个问题。
-
@JoakimDanielson 在iOS应用中运行,这个问题已经解决,非常感谢您的回复。
-
如果您有解决问题的方法,您应该回答自己的问题,这样其他人也可以受益。