Rust和V语言冒泡排序对比测试benchmark

本文通过冒泡排序对比Rust和V语言的性能,包括内存占用和CPU使用情况。测试结果显示,V语言在内存分配上超过Rust,而Rust在内存管理和CPU效率上表现更优。
摘要由CSDN通过智能技术生成

介绍

V语言在HN上经常被讨论,号称有几个优点:

  1. 安全(默认不可变变量等类似Rust特性)
  2. 简单易用(语法一看就懂)
  3. 内置包管理工具(VPM)
  4. 跨平台UI

目的

  1. 初步了解V语言;
  2. 学习valgrind工具获取程序运行信息;
  3. 冒泡排序Rust对比V语言;
  4. 作为技术决策的调研数据;

V的其它优势

可以将C语言工程直接翻译为V

image.png

hot reload

类似于增量编译,每次修改代码不需要编译整个工程

基于OpenGL/Metel/DirectX11的图形库

  1. 加载3D模型和材质
  2. Camera
  3. 骨骼动画

交叉编译容易

加一个参数就可以在Windows平台上编译为Linux,这个比较强大,目前主流交叉编译的项目例如ReactNative,Electron的做法都比这个要麻烦。
v -os windows 或者 v -os linux 即可。
没搞懂它背后如何实现的,可能搞了一种字节码和runtime。

测试条件

硬件

CPU: Intel® Core™ i7-8700 CPU @ 3.20GHz 3.19 GHz

RAM: 16.0 GB

OS

Microsoft Windows 11

WSL2 Ubuntu 22.04.2 LTS

项目

  1. 文件读取
  2. JSON parse
  3. 冒泡排序

所以正好有兴趣测试一下V语言是否像它宣称的那么好。测试条件我选择从文件中读取JSON数据,分析后对数组进行冒泡排序,这个测试第一可以测试IO性能,第二增加了JSON parse的过程,最后用冒泡排序查看内存使用情况。

代码如下:

import os
import time
import json

fn main() {
    sw := time.new_stopwatch()
    str := os.read_file('../data.json')!
    mut arr := json.decode([][]f64, str)!
    // println(arr)
    for i in 0..arr.len {
        bubble_sort(mut arr[i])
        // println(arr[i])
    }
    println('消耗时间 : ${sw.elapsed().milliseconds()}ms')
}


// Bubble Sort
[direct_array_access]
fn bubble_sort(mut array []f64) {
	for i in 0..array.len {
		for j in 0..array.len - 1 - i {
			if array[j] > array[j + 1] {
				array[j], array[j + 1] = array[j + 1], array[j]
			}
		}
	}
	// println('${array[i]}')
}

Rust部分代码

us
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值