为什么Rust中的循环如此缓慢?

我是Rust的新手,因为这是我编写的第一个代码。我正在尝试为将要针对Go构建的应用程序进行一些基准测试,但是我的Rust POC太慢了,我确定这是因为我还没有完全理解该语言。这在Go中以秒为单位运行,但在Rust中已运行了几分钟:

use serde_json::{Result, Value};
use std::fs::File;
use std::io::BufReader;

fn rule(data: Value) {
    for _i in 0..1000000000 {
        let ru = "589ea4b8-99d1-8d05-9358-4c172c10685b";
        let s = 0 as usize;

        let tl = data["tl"].as_array().unwrap().len();
        for i in s..tl {
            if data["tl"][i]["t"] == "my_value" && data["tl"][i]["refu"] == ru {
                //println!("  t {} matched with reference/ru {}\n", data["tl"][i]["t"], data["tl"][i]["refu"]);
                let el = data["el"].as_array().unwrap().len();
                for j in s..el {
                    if data["el"][j]["is_inpatient"] == true && data["el"][j]["eu"] == data["tl"][i]["eu"] {
                        //println!("  e {} matched.\n", data["el"][j]["eu"]);
                    }
                }
            }
        }
    }
}

fn start() -> Result<()> {
    let file = File::open("../../data.json").expect("File should open read only");
    let reader = BufReader::new(file);
    let v: Value = serde_json::from_reader(reader).expect("JSON was not well-formatted");
    //println!("Running rule");
    rule(v);
    Ok(())
}

fn main() {
    let _r = start();
}

1)我知道这很丑。这只是一个快速的POC,因此,如果有机会,我计划稍后再详细了解该语言。

2)大问题:我在这里做错了什么,导致Rust的执行速度如此缓慢?