一句话,编译的时候指定了-gcflags '-N -l' -race参数,导致程序生成了大量的调试信息和data race detection信息。去掉这两个参数后,进程占用内存降低明显,在压力测试的场景下,服务内存占用稳定在100M以下。
否则 会吃掉1G-3G的内存,而且迟迟不释放。。因为那1G的内存都去处理调试信息等冗余信息了。。 这个不是golang的问题,是个人编译时候的失误。
一句话,编译的时候指定了-gcflags '-N -l' -race参数,导致程序生成了大量的调试信息和data race detection信息。去掉这两个参数后,进程占用内存降低明显,在压力测试的场景下,服务内存占用稳定在100M以下。
否则 会吃掉1G-3G的内存,而且迟迟不释放。。因为那1G的内存都去处理调试信息等冗余信息了。。 这个不是golang的问题,是个人编译时候的失误。