天天看點

為什麼D的GC比GO的慢

​​原文​​​

​Zig​

​沒有​

​gc​

​.​

​D​

​的​

​gc​

​是可選的.

我承認該點.它永遠不會像​

​GO​

​​的​

​GC​

​​那樣快.原因是技術上的.​

​GO​

​​是一種隻支援​

​GC​

​​的語言,即它是為​

​GC​

​​優化的.所有​

​GO​

​​配置設定都是在​

​GC​

​​堆上配置設定的,盡管它确實做了​

​逃逸​

​​分析,以确定哪些可​

​配置設定​

​​到棧上.(​

​Java​

​​也有.)

對​​

​繁重​

​​的​

​GC​

​​配置設定,合理的​

​折衷​

​​方案是在​

​每次​

​​用指針​

​寫入​

​​時插入​

​"寫門"​

​​.來通知​

​GC​

​​,配置設定是"髒的",是以可移動它到​

​最近的位置​

​​.這些​

​寫門​

​​會降低​

​代碼​

​​的速度,但它們會​

​更快​

​​地提高​

​GC​

​的速度,是以是值得的.