Datastore profiling

riccardo riccardo.lucchese at gmail.com
Mon Aug 11 06:06:04 EDT 2008


On Sat, 2008-08-09 at 15:30 +0200, riccardo wrote:
> Hi,
> 
> 
> Testcase:
> Fill the datastore with `many small' objects. 
> 
> Build: 2266

< ... >
> 
> 
>  + Sysprof statistics:
> http://dev.laptop.org/~rlucchese/datastore_fill/small_files__b20000000.sysprof
> 
> I can't see anything relevant for libxapian and it's bindings (xapian
> dbg packages were installed)
> 
> Quite a bit of time goes to librsvg functions rendering svg icons to
> GtkPixbufs. Attaching strace to the journal activity and grepping "open"
> on its output gives:
> <
> ...
> open("/usr/share/icons/sugar/scalable/mimetypes/text-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/image-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/audio-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/video-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/text-uri-list.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/text-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/image-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/audio-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> open("/usr/share/icons/sugar/scalable/mimetypes/video-x-generic.svg",
> O_RDONLY|O_LARGEFILE) = 11
> ...
> >
> 
> Does this come from sugar.mime or any sugar component ?
> If yes, would it be possible to share one icon-cache between all sugar
> modules ?
> 

I repeated the test to get cProfile statistics for the journal
activity: 
http://dev.laptop.org/~rlucchese/datastore_fill/cProfile_journal_while_filling_ds

98.4% of the total time goes to __data_store_created_cb.

Perhaps this function could only set a flag and delay data retrieval
(from the DS) to the next time the journal's window is shown?


Riccardo





More information about the Devel mailing list