使用斐波那契进行性​​能测试的结果很奇怪

时间:2019-06-28 11:11:48

标签: flutter dart fibonacci

为了测试Flutter和其他语言的性能,我选择计算递归算法的斐波那契数,输入值为40,同时测量该过程的时间。我将输出打印到UI(我使用了Flutter的基本的hello world示例)。

在Android Studio中执行它(调试)时,大约需要700毫秒的时间来执行计算。到目前为止,一切都很好。假设由于AOT编译,已发行的flutter应用程序的性能要好得多,所以我在发行模式下对其进行了重新编译。令我惊讶的是,该应用程序现在需要1440毫秒才能实现相同的功能。我重试了几次。

有什么想法为什么本地代码应用程序的性能比此处解释的调试应用程序差?错误吗?

我的版本: Flutter 1.5.4-hotfix.2 Dart 2.3.0

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

    int t = new DateTime.now().millisecondsSinceEpoch;
    int tmp = fib(40);
    int t2 = new DateTime.now().millisecondsSinceEpoch;


    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Welcome to Flutter'),
        ),
        body: Center(
          child: Text('-->'+tmp.toString()+" T2-T:"+(t2-t).toString()),
        ),
      ),
    );
  }

  int fib(int number) {
    if (number < 2) {
      return number;
    }
    return fib(number - 2) + fib(number - 1); 
  }
}

0 个答案:

没有答案