相关疑难解决方法(0)

为什么我的Rust程序比同等的Java程序慢?

我正在使用Rust中的二进制序列化和反序列化,并注意到二进制反序列化比使用Java慢几个数量级.为了消除由于例如分配和开销导致的开销的可能性,我只是从每个程序中读取二进制流.每个程序从磁盘上的二进制文件读取,该文件包含一个包含输入值数量的4字节整数,以及一个8字节大端IEEE 754编码浮点数的连续块.这是Java实现:

import java.io.*;

public class ReadBinary {
    public static void main(String[] args) throws Exception {
        DataInputStream input = new DataInputStream(new BufferedInputStream(new FileInputStream(args[0])));
        int inputLength = input.readInt();
        System.out.println("input length: " + inputLength);
        try {
            for (int i = 0; i < inputLength; i++) {
                double d = input.readDouble();
                if (i == inputLength - 1) {
                    System.out.println(d);
                }
            }
        } finally {
            input.close()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Rust的实现:

fn main() {
    use std::os;
    use std::io::File;
    use std::io::BufferedReader;

    let …
Run Code Online (Sandbox Code Playgroud)

performance file-io rust

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

标签 统计

file-io ×1

performance ×1

rust ×1