Aşağıdaki iki satırı üstüme ekledim init.el
:
(setq gc-cons-threshold (eval-when-compile (* 1024 1024 1024)))
(run-with-idle-timer 2 t (lambda () (garbage-collect)))
Bu, tahsis edilen her 800kb bellekte çöp toplamak yerine, Emacs'ın boşta olduğunda, yani duraklama beni rahatsız etmediğinde yapar. (Ayrıca 1GB bellek ayırdıktan sonra toplar, ancak bunun olacağını düşünmüyorum).
Bu, başlangıç zamanımı yaklaşık üçte iki oranında artırdı. Teorik olarak, genel olarak performansı da geliştirmelidir. Bu yaklaşımın bir dezavantajı var mı?
(eval-when-compile (* 1024 1024 1024))
ile most-positive-fixnum
(lütfen bunu, onların yapılandırma içine soru kopya genelinde kodunuzu geliyor oldukça emin herkes değilim) .
gc-cons-threshold
aslında herhangi bir zamanda vurmak için size farz sen gerektiğini, çünkü senden daha yüksek konum istekli olacak aslında sonuçta kim ne kadar çöp tahakkuk olabilir bilir (zaman zaman bu değeri vurmak beklenmedik şekilde hevesli olmayan boş bir görevle). Boşta kalma zamanlayıcısıyla gc'yi tetiklemede belirli bir sorun görmüyorum, ancak boşta olmayan gc için eşiği bu OTT gibi yüksek bir değere ayarlamayı düşünüyorum ve benim izlenimim, değerin muhtemelen "benden daha yüksek" "Kullanmaya hazır olduğum en yüksek değer" yerine "hiç" ihtiyacınız olacak