哈哈哈吵的很有意思,但没必要拉踩语言。我也对 java python 为什么比 go 的内存消耗更小比较好奇?
然后看了文章提到之前的测试,文章下边有评论说的比较清楚:
https://pkolaczk.github.io/memory-consumption-of-async/With no doubt, pre-allocating a stack for each goroutine gives Go a disadvantage over languages whose concurrency system postpones any thread-local memory allocation until really needed. (Side note: I use "thread" as a synonym for green or virtual threads and goroutines in this particular context.)
golang 的 goroutine 是预分配固定大小 2kb 的内存,而 java 的虚拟线程不是预分配,而是根据实际需要的大小去分配。
感觉可以测试函数里,创建一个大的 map ,来占用内存,看看更加真实接近的内存使用(还能看看 VM 语言的 GC 水平)
又学到新知识了!