专业编程基础技术教程

网站首页 > 基础教程 正文

Rust与Python运行速度的简单比较

ccvgpt 2024-12-13 12:08:51 基础教程 1 ℃



Rust与Python运行速度的简单比较

好奇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快

惊不惊喜?意不意外?

Tags:

最近发表
标签列表