gpt4 book ai didi

rust - 防 rust 和压缩文件

转载 作者:行者123 更新时间:2023-12-03 11:42:21 30 4
gpt4 key购买 nike

我是Python和Golang开发人员,最近开始学习Rust。我当前的项目涉及处理数百个压缩日志文件,每个日志文件包含成千上万个JSON条目,每行一个JSON。我最初的尝试出奇的缓慢。通过调查,我注意到即使在 Release模式下编译,Python 3的执行速度也比Rust实现快得多。难道我做错了什么?
下面是我的Rust实现:

use std::io::{BufRead, BufReader};
use std::fs::File;
use libflate::gzip::Decoder;

fn main() {
let path = "/path/to/input.json.gz";
process_file(path);
}

fn process_file(path: &str) {
let x = BufReader::new(Decoder::new(File::open(path).unwrap()).unwrap())
.lines()
.count();

println!("Found {} events", x);
}
这是执行相同操作的速度显着提高的Python代码:
import gzip

def main():
path = "/path/to/input.json.gz";
process_file(path)

def process_file(path):
with gzip.open(path) as fp:
count = 0
for _ in fp:
count += 1
print(f"Found {count} events")
感谢您的阅读和学习。

最佳答案

为了获得最佳性能,请尝试将 flate2 crate 与zlib-ng后端一起使用。

关于rust - 防 rust 和压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66250215/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com