成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

速度驚人,Rust 使 Python 函數速度提高 5000%

開發
今天,來深入學習一下,如何利用 Rust 來大幅提升你的 Python 代碼性能!

大家好,我是漁夫。

大家都知道,Rust 因其卓越的性能和安全性,正被越來越多的科技巨頭采用,甚至白宮也推薦開發者使用Rust來構建關鍵軟件。

今天,來深入學習一下,如何利用 Rust 來大幅提升你的 Python代碼性能!

尋找第N個質數,Python實現

下列,編寫一個 Python 函數來尋找第N個質數。

def is_prime(num):
    # 檢查一個數字是否為質數。
    if num < 2:
        return False
    for i in range(2, num):
        if num % i == 0:
            return False
    return True

def find_nth_prime(n):
    # 尋找第N個質數。
    count = 0
    num = 1
    while count < n:
        num += 1
        if is_prime(num):
            count += 1
    return num

python prime_finder.py 50當我在終端中執行命令時,獲得的響應如下所示。

尋找第 N 個素數,Rust 實現

fn is_prime_rust(num: u32) -> bool {
    if num < 2 {
        return false;
    }
    for i in 2..num {
        if num % i == 0 {
            return false;
        }
    }
    true
}

fn find_nth_prime_rust(n: u32) -> u32 {
    let mut count: u32 = 0;
    let mut num: u32 = 1;

    while count < n {
        num += 1;

        if is_prime_rust(num) {
            count += 1;
        }
    }

    num
}

在 Python 中集成 Rust 代碼

步驟1:初始化我們的項目

$ mkdir rust_prime_funcs && cd rust_prime_funcs # 創建項目目錄

$ python -m venv env # 創建Python虛擬環境

$ source ./env/Scripts/activate # 激活虛擬環境

第二步:安裝Maturin

接下來,我們使用Maturin,這是一個幫助我們構建和發布帶有pyo3、rust-cpython和CFFI綁定以及Rust二進制文件作為Python包的工具。

$ pip install maturin  # 使用pip安裝maturin

步驟3:使用Rust創建Python模塊

在這一步中,我們使用Rust函數創建一個Python模塊。

// rust_prime_funcs/src/lib.rs

use pyo3::prelude::*;

// Rust中的輔助函數
#[pyfunction]
fn is_prime_rust(num: u32) -> bool {
    // ...(與上面Rust實現相同)
}

// Rust中的第N個質數查找函數
#[pyfunction]
fn find_nth_prime_rust(n: u32) -> u32 {
    // ...(與上面Rust實現相同)
}

/// 用Rust實現的Python模塊。
#[pymodule]
fn rust_prime_funcs(_py: Python, m: &PyModule) -> PyResult<()> {
    m.add_function(wrap_pyfunction!(find_nth_prime_rust, m)?)?;
    Ok(())
}

第四步:構建Python模塊

我們使用以下命令在終端構建Python模塊。

$ maturin develop --release

步驟5:比較Python與Rust函數的性能

最后,我們比較兩個函數的性能

# rust_prime_funcs/test/prime_finder.py

import sys
from timeit import timeit

from rust_prime_funcs import find_nth_prime_rust

# ...(Python代碼與上面相同)

def main():
    n = int(sys.argv[1])

    # ...(Python代碼與上面相同)

    ITERATIONS = 100

    python_time_per_iter = timeit(
        lambda: find_nth_prime(n), number=ITERATIONS) / ITERATIONS

    rust_time_per_iter = timeit(
        lambda: find_nth_prime_rust(n), number=ITERATIONS) / ITERATIONS

    # ...(Python代碼與上面相同)

if __name__ == "__main__":
    main()

讓我們執行這段代碼來比較性能。

Rust函數在尋找第N個質數時,比我們的Python實現快了5264.74%,或者說幾乎是Python實現的53倍!

好了,今天又水了一篇,上面是在 Python 代碼中使用 Rust 的簡單示例,但有一些重要的庫要么提供 Python 到 Rust 代碼的綁定,要么完全用 Rust 編寫。

未來AI時代,一定是注重安全性能,以及速度,一起加油了!

責任編輯:趙寧寧 來源: 碼農碼農漁夫
相關推薦

2023-05-04 07:34:37

Rust代碼CPU

2021-06-09 08:00:00

Python編程語言開發

2024-06-27 11:00:07

2016-09-07 15:02:03

ElasticSear索引速度

2020-11-09 14:17:13

Rust編碼語言

2023-12-18 16:40:23

OxlintJavaScripRust

2014-04-08 16:54:27

移動應用運營

2011-05-30 13:15:05

PHP

2011-05-30 13:28:00

PHP

2009-12-31 16:18:44

Silverlight

2011-08-16 13:27:34

索引

2011-08-15 18:20:05

建立索引SQL Sever數據

2011-05-18 09:45:57

Rails

2009-06-16 14:52:45

曙光高性能計算HPC

2009-03-30 14:12:38

LinuxUnladenSwallow

2022-05-25 16:31:25

數據泄露勒索軟件網絡攻擊

2010-05-21 17:27:33

IIS管理窗口

2011-11-17 15:30:34

JavaNIOIO

2010-03-12 15:49:46

Python字串查找

2012-05-16 10:21:04

英特爾SSDPCIe
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩一本 | 久久乐国产精品 | 高清一区二区三区 | 欧美精品第一区 | 国户精品久久久久久久久久久不卡 | 国产成人99av超碰超爽 | 久久久999免费视频 999久久久久久久久6666 | 成人国产精品色哟哟 | 99精品国产成人一区二区 | 五月天婷婷狠狠 | 一区二区三区精品视频 | 欧美黄 片免费观看 | 午夜精品网站 | 国产亚洲黄色片 | 国产精品国产馆在线真实露脸 | 国产精品视频一二三区 | www成年人视频 | 久久久久久久一区二区 | 久久久精品日本 | 国产在线精品一区二区三区 | 51ⅴ精品国产91久久久久久 | 一区影院 | 性网站免费| www.788.com色淫免费 | 久久精品国产免费高清 | 日本亚洲一区 | 亚洲国产精品久久 | 日本免费视频在线观看 | 亚洲精选一区 | 欧美成人aaa级毛片在线视频 | 久久一级| 久久综合亚洲 | 久久久精品网站 | 一区二区三区精品视频 | 国产精品久久久久久久久久免费看 | 久久久精品 | 欧美午夜精品 | 亚洲欧美激情精品一区二区 | 欧美一区二区在线观看 | 一区二区中文字幕 | 久久久高清 |