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

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

ruisui884个月前 (02-03)技术分析41



好奇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)” 的相关文章

5个看起来像 MacOS 的 Linux 发行版,赶紧收藏!

既想使用 Linux,又想同时使用 Mac ?那么你可以尝试这些 Linux 发行版,你肯定会觉得自己在用 Mac 系统。1. Elementry OSElementry OS 是看起来像 Mac OS 的最好的 Linux 发行版。和 Mac 一样,这个操作系统也是为了保护隐私而设计的。因此你会得...

继Yuzu后,任天堂要求移除多个Switch模拟器项目

IT之家 7 月 11 日消息,任天堂美国分公司 (Nintendo of America) 已要求移除多个用于模拟 Nintendo Switch 游戏的开源模拟器项目,其中包括 Suyu、Nzu、Uzuy、Torzu、Sudachi 和 Yuzu-vanced 等。这些模拟器均被指控包含绕过任天...

掌握版本控制:Git的那些常见用法与技巧

Git作为现代开发中最常用的版本控制系统,它的普及和高效性使得程序员几乎每天都在与它打交道。无论是个人项目,还是团队协作,Git都能帮助我们追踪代码的修改历史,保证代码版本的管理井井有条,并在多人协作时有效地避免冲突。本文将分享一些常见的Git用法与技巧,帮助你更好地掌握Git的强大功能,并提升你在...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockershim。在V1.24起的版本的kubelet就彻底移除了dockershim,改为默认使用Conta...

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

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