使用numba进行质数分解

时间:2018-07-21 18:27:28

标签: python-3.x numba

我正在尝试使用numba进行质数分解算法,但无法获得令人满意的结果。

这是我的代码:

  FirebaseAuth auth; //firebase auth
  FirebaseUser user; // firebase user

  var imageUrl = "assets/image.png";  //you can use a image 
  //as a default image that would be replaced later with the profile photo


  Widget userProfilePhoto()
  {
    return Center(
        child: Container(
          height: 100.0,
          width: 100.0,
          decoration: BoxDecoration(
            shape: BoxShape.circle,
            image: DecorationImage(
              fit : BoxFit.fill,
              image: NetworkImage(userurl)
            )
          ), 
        )
      ),
  }


  void checkUser()
  {
    //Check if the user is signned in or not with the currentUser() function
    if(auth.currentUser() != null)
    {
      setState((){
        userImageUrl = user.photoUrl;
        //if the user is signned in then set the url to be the image url
      });
    }
    else
    {
      //call signin method to make the user signin
      signIn();
    }
  }

当我执行它时,numba函数似乎变慢了,所以我猜想它没有按照预期的方式工作。

1 个答案:

答案 0 :(得分:1)

如果运行jit(DumbPrimeFactors, nopython=True),则会看到一个错误,向您显示numba在object模式下正在将该函数设置为吉它,因为它不知道如何将所有内容转换为机器代码,而这不会为您提供最佳性能。解决方法是更改​​行:

result_list = list()

收件人:

result_list = []

似乎将python转换为IR(中间表示)的numba代码不了解list()语法。然后在我的计算机上,numba手动版本比未手动版本快大约7倍。还要注意,当您为numba代码计时时,第一次运行它时,看到的时间就是运行时+编译时间。随后的所有运行都将使用jitted代码的缓存版本,因此您只会看到实际的执行时间。