当前位置:首页 > 技术分析 > 正文内容

Rust与Python运行速度的简单比较(rust pytorch)

ruisui883个月前 (02-03)技术分析19



好奇Rust的运行效率到底如何,故做了一个同一算法两款语言运行速度比较,结果还是蛮有趣的。

先说结论:rust的运行速度比Python快,但是在求解质素问题上,使用pypy编译py代码,速度也比较快。请看过程!

1、求解的问题(算法)

求解的问题是:计算并列出整数2到100000内所有的质素,并且将求得的质数准入列表中,最后一次性显示出来。

2、Python代码如下:

# coding:UTF-8
import time


def timer_decorator(func):
    def timer():
       print("Start!")
       start_time = time.time()
       func()
       end_time = time.time()
       print(f'{"%.2f" % (end_time - start_time)}s')

    return timer


@timer_decorator
def main():
    num: int = 100000
    quality_num_list = []
    for i in range(2, num + 1):
       for j in range(2, i + 1):
          if i % j == 0 and i != j:
             break
          if i == j:
             quality_num_list.append(i)
    print(quality_num_list)


if __name__ == '__main__':
    main()

3、Rust代码如下:

fn main() {
    let mut list_quatily:Vec<u64> = Vec::new();
    let num: u64 = 10000;
    print!("Prime numbers up to {num}:\n");
    for i in 2..=num {
        for j in 2..=i {
            if i % j == 0 && i != j {
                break;
            }
            if i == j {
                list_quatily.push(i);
            }
        }
    }
    println!("{:?}", list_quatily);
}

运行效率比较

1、Python运行耗时为16.22秒


2、Rust运行耗时为2.542秒


3、使用PYPY编译Python代码的运行耗时为1.16秒


总结:

1、rust的速度要比CPython速度要快;

2、如果使用Pypy编译Python代码,要比RUST快

惊不惊喜?意不意外?

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1227.html

标签: pypy3
分享给朋友:

“Rust与Python运行速度的简单比较(rust pytorch)” 的相关文章

代码分支规范

一.gitflow工作流说明:主分支:master,稳定版本代码分支,对外可以随时编译发布的分支,不允许直接Push代码,只能请求合并(pull request),且只接受hotfix、release分支的代码合并。gitlab上做限制。热修复分支:hotfix,针对现场紧急问题、bug修复的代码分...

壹啦罐罐 Android 手机里的 Xposed 都装了啥

这是少数派推出的系列专题,叫做「我的手机里都装了啥」。这个系列将邀请到不同的玩家,从他们各自的角度介绍手机中最爱的或是日常使用最频繁的 App。文章将以「每周一篇」的频率更新,内容范围会包括 iOS、Android 在内的各种平台和 App。本期继续歪楼,由少数派撰稿作者@壹啦罐罐介绍他正在使用的...

JavaScript数组操作:掌握常用方法,提升开发效率

JavaScript数组操作:从增删改查到高级应用本文深入解析JavaScript中常用的数组方法,包括push、unshift、pop、shift、map、filter、reverse、at 和 slice。通过详细的例子和应用场景,帮助开发者快速掌握这些方法,提升代码效率和可读性。开篇点题作为J...

vue2中路由的使用步骤,你学会了吗?

今天我们来整理下关于vue2中路由的使用步骤:1. 导入 vue 文件和Vue-router文件(注意:vue-router是依赖vue运行的,所以一定在vue后引入vue-router)2. 定义路由组件模板3. 创建路由实例并定义路由规则4. 将路由实例挂载给Vue实例5. 在结构区域定义控制路...

基于Spring Cloud+VUE的多租户小程序商城源码「快速二开可商用」

一、系统介绍JooLun平台是一个专注微信快速二开系统研发的平台,采用Java语言开发,使用的是最新微服务前后端分离技术,目前有公众号和小程序商城两个版本,有公众号后台管理、小程序商城。基于Spring Cloud微服务+VUE实现的核心框架多租户小程序商城源码,核心框架采用SpringBoot2+...

千智云低代码平台 v2.0.6发布「平台升级」

【平台简介】千智云低代码应用平台是一款低代码开发+低代码PaaS+SaaS应用中台为一体的应用平台。平台提供了多种应用场景功能及应用组件,满足各种应用的基本实现,可以使用低代码开发的方式,定制化的开发软件项目,并使用平台提供的各种功能,提供了大多数业务场景的支持。也可以将开发的应用发布到平台,成为S...