<div dir="ltr">+1, works nice.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 18, 2014 at 2:39 PM, Marius Avram <span dir="ltr">&lt;<a href="mailto:marius.avram@intel.com" target="_blank">marius.avram@intel.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This optimization is in support of the bug #5485. The function called<br>
at the beginning of every build: store_dependency_information was taking<br>
approximately 20sec and it was delaying the arrival of events from the<br>
event queue. The change minimizes the calls to _save_a_task(),<br>
reducing the time to half.<br>
<br>
Signed-off-by: Marius Avram &lt;<a href="mailto:marius.avram@intel.com">marius.avram@intel.com</a>&gt;<br>
---<br>
 bitbake/lib/bb/ui/buildinfohelper.py |   16 +++++++++++++---<br>
 1 file changed, 13 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py<br>
index 0a8073f..da777f1 100644<br>
--- a/bitbake/lib/bb/ui/buildinfohelper.py<br>
+++ b/bitbake/lib/bb/ui/buildinfohelper.py<br>
@@ -605,11 +605,21 @@ class BuildInfoHelper(object):<br>
             task_info[&#39;task_name&#39;] = taskname<br>
             task_obj = self.orm_wrapper.get_update_task_object(task_info)<br>
             return task_obj<br>
+<br>
+        # create tasks<br>
+        tasks = {}<br>
+        for taskdesc in event._depgraph[&#39;tdepends&#39;]:<br>
+            tasks[taskdesc] = _save_a_task(taskdesc)<br>
<br>
+        # create dependencies between tasks<br>
         for taskdesc in event._depgraph[&#39;tdepends&#39;]:<br>
-            target = _save_a_task(taskdesc)<br>
-            for taskdesc1 in event._depgraph[&#39;tdepends&#39;][taskdesc]:<br>
-                dep = _save_a_task(taskdesc1)<br>
+            target = tasks[taskdesc]<br>
+            for taskdep in event._depgraph[&#39;tdepends&#39;][taskdesc]:<br>
+                if taskdep not in tasks:<br>
+                    # Fetch tasks info is not collected previously<br>
+                    dep = _save_a_task(taskdep)<br>
+                else:<br>
+                    dep = tasks[taskdep]<br>
                 Task_Dependency.objects.get_or_create( task = target, depends_on = dep )<br>
<br>
     def store_build_package_information(self, event):<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.9.5<br>
<br>
_______________________________________________<br>
bitbake-devel mailing list<br>
<a href="mailto:bitbake-devel@lists.openembedded.org">bitbake-devel@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/bitbake-devel" target="_blank">http://lists.openembedded.org/mailman/listinfo/bitbake-devel</a><br>
</font></span></blockquote></div><br></div>