小编mur*_*y60的帖子

什么是读取 CSV 文件的内存有效方式?

我的程序使用csvcrate into读取 CSV 文件Vec<Vec<String>>,其中外部向量表示行,内部向量将行分成列。

use std::{time, thread::{sleep, park}};
use csv;

fn main() {
    different_scope();

    println!("Parked");
    park();
}

fn different_scope() {
    println!("Reading csv");
    let _data = read_csv("data.csv");

    println!("Sleeping");
    sleep(time::Duration::from_secs(4));

    println!("Going out of scope");
}

fn read_csv(path: &str) -> Vec<Vec<String>> {
    let mut rdr = csv::Reader::from_path(path).unwrap();

    return rdr
        .records()
        .map(|row| {
            row
                .unwrap()
                .iter()
                .map(|column| column.to_string())
                .collect()
        })
        .collect();
}
Run Code Online (Sandbox Code Playgroud)

我正在查看 RAM 使用情况,htop这使用 2.5GB 内存来读取 250MB CSV 文件。

以下是内容 cat /proc/<my pid>/status

Name:   (name)
Umask:  0002 …
Run Code Online (Sandbox Code Playgroud)

memory csv rust

1
推荐指数
1
解决办法
85
查看次数

标签 统计

csv ×1

memory ×1

rust ×1