<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"><<a href="mailto:marius.avram@intel.com" target="_blank">marius.avram@intel.com</a>></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 <<a href="mailto:marius.avram@intel.com">marius.avram@intel.com</a>><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['task_name'] = 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['tdepends']:<br>
+ tasks[taskdesc] = _save_a_task(taskdesc)<br>
<br>
+ # create dependencies between tasks<br>
for taskdesc in event._depgraph['tdepends']:<br>
- target = _save_a_task(taskdesc)<br>
- for taskdesc1 in event._depgraph['tdepends'][taskdesc]:<br>
- dep = _save_a_task(taskdesc1)<br>
+ target = tasks[taskdesc]<br>
+ for taskdep in event._depgraph['tdepends'][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>