Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 一个简单的Go程序的高内存使用率_Memory_Go - Fatal编程技术网

Memory 一个简单的Go程序的高内存使用率

Memory 一个简单的Go程序的高内存使用率,memory,go,Memory,Go,Codechef中最简单的问题是读取输入并写入输出,只要数字不是42。我编写了以下代码: package main import "fmt" func main() { var num int8 fmt.Scanln(&num) for ; num != 42; fmt.Scanln(&num) { fmt.Println(num) } } 它是可以接受的,但根据站点的情况,它使

Codechef中最简单的问题是读取输入并写入输出,只要数字不是42。我编写了以下代码:

package main

import "fmt"

func main() {
        var num int8
        fmt.Scanln(&num)
        for ; num != 42; fmt.Scanln(&num) {
                fmt.Println(num)
        }
}
它是可以接受的,但根据站点的情况,它使用124.6M内存。我用C写了基本相同的东西,花了160万,我很困惑。你知道这可能是什么原因吗


我是新来的。这可能是一个大胆的错误。

我没有检查,但我怀疑您的程序使用124+MB的内存。我不知道这个数字是从哪里来的,但我猜你把分配的虚拟内存和“已用内存”搞混了。这两个数字可能很接近,也可能不接近


Go通过操作系统保留了一个很大的内存区域,但在Go运行时实际进一步分配之前,它不是“已用内存”。无人认领的虚拟内存在大多数系统上不消耗实际内存,因此基本上是免费的。

我没有检查,但我怀疑您的程序使用124+MB的内存。我不知道这个数字是从哪里来的,但我猜你把分配的虚拟内存和“已用内存”搞混了。这两个数字可能很接近,也可能不接近


Go通过操作系统保留了一个很大的内存区域,但在Go运行时实际进一步分配之前,它不是“已用内存”。无人认领的虚拟内存在大多数系统上不消耗实际内存,因此基本上是免费的。

Codechef提交部分,这就是我看到的。它不显示这是已使用的内存还是已分配的虚拟内存。我猜你是对的。如果你好奇,请使用检查实际的堆分配。Codechef提交部分,这就是我看到的。它不显示这是已使用的内存还是已分配的虚拟内存。我猜你是对的。如果你好奇,请使用检查实际的堆分配。