Rust与Python运行速度的简单比较(rust pytorch)
好奇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快。
惊不惊喜?意不意外?