在听说动态编译技术后,JVM对我有吸引力,我用Rust写了一个程序,为编译器设置了许多优化标志以获得最佳性能,并在java中写了实例。

嗨,起初,我是一个Rust程序员,并为它写了一些项目和一个框架,在听说动态编译技术后,JVM对我有吸引力,我用Rust写了一个程序,为编译器设置了许多优化标志以获得最佳性能,并在java中写了实例。

在热身时间过后,我看到JVM的表现令人惊讶,它是一头野兽,在性能上可以击败Rust。

  • Rust结果:10,648 _ 6,678 _ 8,274

  • Java结果: 8,661 _ 9,608 _ 6,302

平均12次的基准。

  • Rust: 9,948

  • Java:8,693

Java代码:

public static void main(String[] args) {        for (int q = 0; q < 1001; q++) {            long tInit = System.nanoTime();            ArrayList<CClass> arr = new ArrayList<CClass>(100);            for (int i = 0; i < 100 ; i++) {                arr.add(new CClass("fname", "lname", i % 30));
            }            for (int i = 0; i < 100 ; i++) {                CClass cls = arr.get(i);                cls.validation();
            }            if (q > 997) {                System.out.println(System.nanoTime() - tInit);
            }
        }

    }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.

Rust Code :

fn main() {    for _ in 0..3 {        let now = std::time::Instant::now();        // ===============================================
        
        let mut v = Vec::with_capacity(100);        for i in 0..100 {            v.push(Class::new("fname", "fname", i % 30));
        }        for i in 0..100 {            let cls = v.get(i).unwrap();            cls.validation();
        }        // ===============================================
        let now2 = std::time::Instant::now();        println!("==> {}", now2.duration_since(now).as_nanos());
    }
}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.

我使用了一些Rust编译器标志,以使性能最大化。

[build]rustflags=[“-C”, “target-cpu=native”]
[profile.dev]lto = trueopt-level = 31.2.3.4.5.

最后,我越来越喜欢JVM,java/Scala。

伟大的语言,巨大的生态系统,和惊人的性能。

阿里巴巴、Linkedin、Twitter、Amazon等公司80%的后端工作都使用JVM。

这不仅仅是为了JVM的独立或生产力,它是为了惊人的性能和惊人的稳定性。