- 内存管理
内存管理
V语言没有自动内存回收(GC)和引用计数。V语言会在编译阶段完成必要的清理工作。例如:
fn draw_text(s string, x, y int) {...}fn draw_scene() {...draw_text('hello $name1', 10, 10)draw_text('hello $name2', 100, 10)draw_text(strings.repeat('X', 10000), 10, 50)...}
因为字符串没有从draw_text函数逃逸,因此函数调用返回之后就可以被清理。实际上这几个函数调用不会产生任何内存分配的行为。因为两个字符串比较小,V语言会使用提前准备好的缓冲区构造字符串。
对于复杂的情况,目前还需要手工管理内存。但是我们将很快解决这个问题。
V语言运行时会检测内存泄露并报告结果。要释放数组,可以使用free()方法:
numbers := [0; 1000000]...numbers.free()
