我试图理解async/await,但我发现了这一点。
下面的两个代码只与关键字不同
async
void main() {
asyncAwait();
}
void asyncAwait() {
int i = 0;
DateTime now = DateTime.now();
print(" Now ");
while (i++ < 10000000000);
DateTime after = DateTime.now();
print("Done in ${after.difference(now)}");
}
现在完成时间:0:00:09.221742
void main() {
asyncAwait();
}
void asyncAwait() async {
int i = 0;
DateTime now = DateTime.now();
print(" Now ");
while (i++ < 10000000000);
DateTime after = DateTime.now();
print("Done in ${after.difference(now)}");
}
现在完成时间:0:00:30.555924
其中一个至少比另一个快3倍。我正在寻找编译器级别的解释,但我找不到任何相关文档。
我用这个命令用dart 2.13.0运行它
dart main.dart
如果你看不到巨大的差异,机会是10000000000到100000000000