[英]Does BEAM (the Erlang VM) do garbage collection in parallel?
我正在學習Elixir,並希望確定我理解垃圾收集在Erlang VM中是如何工作的。
我的理解是這樣的:
這個對嗎?
收集垃圾。 當用其他語言收集垃圾時,整個系統必須在垃圾收集器運行時停止。 如果你的計算機程序應該運行一次,寫一些輸出,然后退出,這種方法是完全正確的。 但是在長時間運行的應用程序中,例如桌面,移動或服務器程序,此策略偶爾會導致UI凍結和響應時間變慢。 另一方面,Erlang程序可以有數千個獨立堆,這些堆是單獨垃圾收集的; 這樣,垃圾收集的性能損失會隨着時間的推移而擴散,因此長時間運行的應用程序不會在垃圾收集器運行時不時地神秘地停止響應。
所以我相信erlang垃圾會同時收集,也就是說,各種垃圾堆是彼此獨立的垃圾收集。 是否有任何並行化取決於您的節點是否在多個核心上運行,但如果是,那么垃圾收集是並行完成的,是的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.