_________
Danyal Mh
嗨,起初,我是一个Rust程序员,并为它写了一些项目和一个框架,在听说动态编译技术后,JVM对我有吸引力,我用Rust写了一个程序,为编译器设置了许多优化标志以获得最佳性能,并在java中写了实例。
在热身时间过后,我看到JVM的表现令人惊讶,它是一头野兽,在性能上可以击败Rust。
Rust结果:10,648 _ 6,678 _ 8,274 Java结果: 8,661 _ 9,608 _ 6,302
平均12次的基准。 Rust: 9,948Java:8,693
Java代码
代码语言:javascript复制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);
}
}
}
Rust Code :
代码语言:javascript复制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());
}
}
我使用了一些Rust编译器标志,以使性能最大化。
代码语言:javascript复制[build]
rustflags=[“-C”, “target-cpu=native”]
[profile.dev]
lto = true
opt-level = 3
最后,我越来越喜欢JVM,java/Scala。 伟大的语言,巨大的生态系统,和惊人的性能。 阿里巴巴、Linkedin、Twitter、Amazon等公司80%的后端工作都使用JVM。
这不仅仅是为了JVM的独立或生产力 它是为了惊人的性能和惊人的稳定性
来源:
https://www.toutiao.com/a7069215736744509986/?log_from=48c622cb55e3a_1646120750257
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com
来都来了,走啥走,留个言呗~
IT大咖说 | 关于版权
由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!
- 相关推荐
- 推荐文章
- 看大牛是如何一次性把RPC远程过程调用,Dubbo架构进阶给讲清的
- Redis 源码分析 I/O 模型详解
- Polars:一个正在崛起的新数据框架
- 金三银四软件测试面试题
- 整洁架构、DDD 和 CQRS 简介
- 2022技术趋势预测,Python、Java占主导,Rust、Go增长迅速,元宇宙成为关注焦点
- 400 行 C 代码实现一个虚拟机
- 如何通过查询实施数据解放?
- 什么是流式SQL,它有什么用?
- 卷起来了!手把手带你写一个中高级程序员必会的分布式RPC框架
- 大数据技术SpringBoot框架---实现前后端分离(MVC)对数据进行可视化