在Linux下运行编译好的go语言程序,程序占用VSZ达到了661M,本身设备的内存一共也才512M,现在程序运行达不到在X86下面运行的效果,这个是由于VSZ大小超过了物理大小所致吗
有疑问加站长微信联系(非本文作者)

在Linux下运行编译好的go语言程序,程序占用VSZ达到了661M,本身设备的内存一共也才512M,现在程序运行达不到在X86下面运行的效果,这个是由于VSZ大小超过了物理大小所致吗
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
是不是创建的对象太多了
http://docs.studygolang.com/doc/faq#Why_does_my_Go_process_use_so_much_virtual_memory
The Go memory allocator reserves a large region of virtual memory as an arena for allocations. This virtual memory is local to the specific Go process; the reservation does not deprive other processes of memory.
To find the amount of actual memory allocated to a Go process, use the Unix top command and consult the RES (Linux) or RSIZE (macOS) columns.
里面确实很多
这个只是说出的原因,没有本质解决问题呐.现在程序运行和PC运行不一样
这是根本原因,你创建的对象太多,gc来不及回收,所以一直导致内存暴涨。解决方法是创建全局对象,复用