看这个分析 windows版emacs内存管理分析
其实空闲内存管理完全没必要由gc来做,直接引入mimalloc之类的库,不需要的内存直接mi_free掉,由库统一管理,效率高很多,还减少了gc的工作
不过想了下,直接这样的话好像还不大行,得等把emacs gc的算法详细研究清楚才行,如果gc清理的时候是直接扫描整个堆,就只能现在这样。不过对于走mmap_系列函数,比如buffer相关的,接入mimalloc还是有好处
看这个分析 windows版emacs内存管理分析
其实空闲内存管理完全没必要由gc来做,直接引入mimalloc之类的库,不需要的内存直接mi_free掉,由库统一管理,效率高很多,还减少了gc的工作
不过想了下,直接这样的话好像还不大行,得等把emacs gc的算法详细研究清楚才行,如果gc清理的时候是直接扫描整个堆,就只能现在这样。不过对于走mmap_系列函数,比如buffer相关的,接入mimalloc还是有好处