Howdy, all

I'm poking around with the marks code.  Currently, marks are _really 
slow_ when you connect at least one mark to an image tag — when an image 
with no marks drops to zero refs, we lose track of what marks it may 
have, and on the next marks filtering op, we end up having to hit the 
XMP for every file in the directory.

My current plan is to just ref every FileData in the directory if marks 
are turned on (and then unref them all when we change directories), 
which means that marks filter operations will be hitting an in-memory 
cache rather than having to go to disk _and_ reparse all the XML.

That said, I imagine that we'd be better off just always holding a ref 
for every FileData in the current directory.  On my machine, a FileData 
is 176 bytes and a GList is 24 bytes, so for a directory of 20,000 
images, we'd be spending 3.8MB holding FileDatas.  That's nothing.  In 
turn, it'd mean that we could suddenly sort or filter by any XMP or EXIF 
tag and it'd be fast, without having to do any refcount special-casing. 
  We'd hit the disk at most once for every FileData in the directory, 
and that's it.

Thoughts?

--xsdg

------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel

Reply via email to