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

速度驚人,Rust 使 Python 函數(shù)速度提高 5000%

開發(fā)
今天,來深入學(xué)習(xí)一下,如何利用 Rust 來大幅提升你的 Python 代碼性能!

大家好,我是漁夫。

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

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

尋找第N個(gè)質(zhì)數(shù),Python實(shí)現(xiàn)

下列,編寫一個(gè) Python 函數(shù)來尋找第N個(gè)質(zhì)數(shù)。

def is_prime(num):
    # 檢查一個(gè)數(shù)字是否為質(zhì)數(shù)。
    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個(gè)質(zhì)數(shù)。
    count = 0
    num = 1
    while count < n:
        num += 1
        if is_prime(num):
            count += 1
    return num

python prime_finder.py 50當(dāng)我在終端中執(zhí)行命令時(shí),獲得的響應(yīng)如下所示。

尋找第 N 個(gè)素?cái)?shù),Rust 實(shí)現(xiàn)

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:初始化我們的項(xiàng)目

$ mkdir rust_prime_funcs && cd rust_prime_funcs # 創(chuàng)建項(xiàng)目目錄

$ python -m venv env # 創(chuàng)建Python虛擬環(huán)境

$ source ./env/Scripts/activate # 激活虛擬環(huán)境

第二步:安裝Maturin

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

$ pip install maturin  # 使用pip安裝maturin

步驟3:使用Rust創(chuàng)建Python模塊

在這一步中,我們使用Rust函數(shù)創(chuàng)建一個(gè)Python模塊。

// rust_prime_funcs/src/lib.rs

use pyo3::prelude::*;

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

// Rust中的第N個(gè)質(zhì)數(shù)查找函數(shù)
#[pyfunction]
fn find_nth_prime_rust(n: u32) -> u32 {
    // ...(與上面Rust實(shí)現(xiàn)相同)
}

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

第四步:構(gòu)建Python模塊

我們使用以下命令在終端構(gòu)建Python模塊。

$ maturin develop --release

步驟5:比較Python與Rust函數(shù)的性能

最后,我們比較兩個(gè)函數(shù)的性能

# 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()

讓我們執(zhí)行這段代碼來比較性能。

Rust函數(shù)在尋找第N個(gè)質(zhì)數(shù)時(shí),比我們的Python實(shí)現(xiàn)快了5264.74%,或者說幾乎是Python實(shí)現(xiàn)的53倍!

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

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

責(zé)任編輯:趙寧寧 來源: 碼農(nóng)碼農(nóng)漁夫
相關(guān)推薦

2023-05-04 07:34:37

Rust代碼CPU

2021-06-09 08:00:00

Python編程語(yǔ)言開發(fā)

2024-06-27 11:00:07

2016-09-07 15:02:03

ElasticSear索引速度

2020-11-09 14:17:13

Rust編碼語(yǔ)言

2023-12-18 16:40:23

OxlintJavaScripRust

2014-04-08 16:54:27

移動(dòng)應(yīng)用運(yùn)營(yíng)

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數(shù)據(jù)

2011-05-18 09:45:57

Rails

2009-06-16 14:52:45

曙光高性能計(jì)算HPC

2009-03-30 14:12:38

LinuxUnladenSwallow

2022-05-25 16:31:25

數(shù)據(jù)泄露勒索軟件網(wǎng)絡(luò)攻擊

2010-05-21 17:27:33

IIS管理窗口

2011-11-17 15:30:34

JavaNIOIO

2012-05-16 10:21:04

英特爾SSDPCIe

2010-03-12 15:49:46

Python字串查找
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 午夜羞羞 | 亚洲综合一区二区三区 | 91精品国产综合久久精品 | 亚洲精品久久久久久一区二区 | 欧美 日韩 国产 在线 | 欧美韩一区二区 | www.四虎.com| 国产精品成人在线播放 | 国产黄色大片在线免费观看 | 国产精品视频一区二区三区不卡 | 国产永久免费 | 午夜免费 | 日韩av在线一区二区 | 欧美激情综合 | 国产一级在线 | 国产激情视频在线观看 | 一区二区三区四区在线视频 | www.精品国产 | 一级毛片在线播放 | www.99久久.com | 午夜在线影院 | 中文日韩在线 | 久久久久久国产精品 | 欧美性影院 | 国产乱码精品一区二区三区中文 | 久久人体视频 | 91伦理片| 国产精品视频一区二区三区不卡 | 1级黄色大片 | 亚洲精品九九 | 手机看黄av免费网址 | 亚洲欧洲色视频 | 国产精品视频播放 | 国产一级在线 | 国产精品视频观看 | 国产91丝袜在线熟 | 不卡一区二区在线观看 | 精品乱码一区二区三四区 | 91精品国产综合久久婷婷香蕉 | 欧美爱爱视频 | 日韩中文字幕第一页 |