bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#38345: 27.0.50; Permanent increase in memory consumption after openi


From: Eli Zaretskii
Subject: bug#38345: 27.0.50; Permanent increase in memory consumption after opening images (or pdfs)
Date: Thu, 28 Nov 2019 17:10:43 +0200

> From: Ihor Radchenko <yantar92@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, 38345@debbugs.gnu.org
> Date: Thu, 28 Nov 2019 09:38:34 +0800
> 
> #+begin_sec emacs-lisp
> (dolist (file (directory-files "~/Tosort/pictures&photos/" 'full ".*jpg"))
>   (find-file file)
>   (mapc #'kill-buffer (seq-filter (apply-partially #'string-match ".+.jpg$") 
> (mapcar #'buffer-name (buffer-list))))
>   (garbage-collect)
>   (clear-image-cache t))
> #+end_src
> 
> The resulting memory consumption graph is attached.
> The memory increase almost disappeared (remaining heap size becomes
> ~40Mb in comparison ~400Mb in the version with just garbage collect).
> 
> Just calling (clear-image-cache) after cycling over opening/killing
> the image buffers still results in ~400Mb (it has no effect, basically).
> 
> The above result is confusing since the all the code I tried to run so
> far had (setq image-cache-eviction-delay 5). Since, cycling over all the
> images usually took >1min, cache clearing supposed to happen at least
> several times during opening/killing the image buffers.

As I explained elsewhere, unless you call clear-image-cache from Lisp,
the only place we do that automatically is when the number of
redisplay cycles since last time the image cache was cleared becomes
greater than 101.  This, no matter how low is the value of
image-cache-eviction-delay, it will have no effect until we've done
101 redisplay cycles.  And your loop above does just one.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]