Another interesting test would be to import the same library using static bindings and gi, comparing the time.<div><br></div><div>Btw for reliable timing you want to drop the kernel memory cache before each start</div><div>
<a href="http://www.linuxinsight.com/proc_sys_vm_drop_caches.html">http://www.linuxinsight.com/proc_sys_vm_drop_caches.html</a><br><br>On Friday, 8 November 2013, Gonzalo Odiard  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">There are many issues in Sugar regarding performance,<br>but one of the more visible to the user is how much time the activities<br>take to start. This is not so evident in newer hardware,<br>but is important in XO-1. Is so important than by example, Peru will use sugar 0.94<br>

instead of a newer because o this.<br><br>I was doing some testing with the main activities:<br><br><a href="https://docs.google.com/spreadsheet/ccc?key=0As_jQJX0Me6XdDI2clFpX1FFRHhKMHVFZGkyakdST2c&usp=drive_web#gid=0" target="_blank">https://docs.google.com/spreadsheet/ccc?key=0As_jQJX0Me6XdDI2clFpX1FFRHhKMHVFZGkyakdST2c&usp=drive_web#gid=0</a><div>

<br></div><div>(These measures were done in a XO-1)<br><br>I first blamed to the port from gtk2 to gtk3 of the big regressions in performance,<br>but after looking with a little of detail, some can be solved easily.<br><br>

One of the arguments of the dynamic bindings was a better startup time due to not need initialize all the libraries until is needed use them. Then the import should<br>be lighter than before. Looks like that is not so true.<br>

<br>In the case of Write activity, I was able to reduce the start up in 7 or 8 seconds, just delaying the gstreamer initialization [1], and 1 or 2 seconds more delaying two other imports.<br><br>In the case of Browse activity, just delaying the import of Evince libraries to the moment when a pdf is opened, improve the start up time in 13 seconds (patch attached). The start up time is even better than the version in 0.94 <br>

<br>I think this work of identify big libraries used only in specific moments,<div>can be applied in other cases.</div><div><br></div><div>Gonzalo<br><br>[1] <a href="http://git.sugarlabs.org/write/mainline/commit/5dd843cf415d0c65e2927540225b0098f2b71cd0" target="_blank">http://git.sugarlabs.org/write/mainline/commit/5dd843cf415d0c65e2927540225b0098f2b71cd0</a><br>

[2] <a href="http://git.sugarlabs.org/write/mainline/commit/dba223f5749f510735692a06f246acee30ab50bf" target="_blank">http://git.sugarlabs.org/write/mainline/commit/dba223f5749f510735692a06f246acee30ab50bf</a><div><br></div>
</div></div></div>
</blockquote></div><br><br>-- <br>Daniel Narvaez<br><br>