Age | Commit message (Collapse) | Author |
|
The dicache holds the decompressed buffers for each image and it often
is the main cause for memory consumption in Dillo. The current algorithm
for evicting entries waits until a image has no references and at least
three pages were opened before removing the entry.
|
|
|
|
For a long time it had a custom ADT with a list of nodes and each
node a linked list (with pointers). The last memory bug motivated me to
try to normalize it to use dlib. Now, it got simpler, shorter, and
possibly faster (although conversion wasn't a simple task).
PD: It also uses less memory now.
|
|
This allows keeping the decompressed image entry until a_Dicache_cleanup()
removes it. With the added SurvCleanup variable that controls how many
cleanup passes the entry is kept, it is now possible to tune the dicache.
For instance:
SurvCleanup=0 same as without patch (negligible difference).
SurvCleanup=1 allows Back and Forward reuse entries for adjacent pages.
SurvCleanup=2 all the above, plus one more pass of lifetime.
The default is SurvCleanup=3 (experimental).
Example: If you read a newspaper with lots of images, this caching allows
to click an article, read it, and go back *quickly* using the same tab.
It is experimental because there may be other simple approaches that serve
well/better these kind of usage patterns.
|
|
This allows reuse of the dicache entry after repush changes DilloImage.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Fixed progressive display of interlaced pngs.
|
|
|