diff options
author | Bob Foerster <robert@erafx.com> | 2010-11-20 04:39:22 +0800 |
---|---|---|
committer | Chris Larson <chris_larson@mentor.com> | 2010-11-21 11:18:02 -0700 |
commit | 73b40f06444cb877a5960b2aa66abf7dacbd88f0 (patch) | |
tree | 8d64099dfdd2d8a40a4b95276232adef81dacba6 /lib | |
parent | bc0e147762769659b025b650b6b8da01ecf2248c (diff) | |
download | bitbake-73b40f06444cb877a5960b2aa66abf7dacbd88f0.tar.gz |
Prefer xrange over range for small performance gain.
range() allocates an actual list when called. xrange() is just an iterator
and creates the next range item on demand. This provides a slight
performance increase.
In python 3, range will do what xrange does currently, but the upgrade will
be handled by the 2to3 tool.
Signed-off-by: Bob Foerster <robert@erafx.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bb/cooker.py | 2 | ||||
-rw-r--r-- | lib/bb/runqueue.py | 42 | ||||
-rw-r--r-- | lib/bb/taskdata.py | 8 | ||||
-rw-r--r-- | lib/bb/utils.py | 10 |
4 files changed, 31 insertions, 31 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 2281600d5..355a54961 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -288,7 +288,7 @@ class BBCooker: depend_tree["rdepends-pkg"] = {} depend_tree["rrecs-pkg"] = {} - for task in range(len(rq.runq_fnid)): + for task in xrange(len(rq.runq_fnid)): taskname = rq.runq_task[task] fnid = rq.runq_fnid[task] fn = taskdata.fn_index[fnid] diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index dbbd55567..3f527ad6a 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -97,7 +97,7 @@ class RunQueueScheduler(object): """ Return the id of the first task we find that is buildable """ - for tasknum in range(len(self.rq.runq_fnid)): + for tasknum in xrange(len(self.rq.runq_fnid)): taskid = self.prio_map[tasknum] if self.rq.runq_running[taskid] == 1: continue @@ -229,7 +229,7 @@ class RunQueue: return "%s, %s" % (fn, taskname) def get_task_id(self, fnid, taskname): - for listid in range(len(self.runq_fnid)): + for listid in xrange(len(self.runq_fnid)): if self.runq_fnid[listid] == fnid and self.runq_task[listid] == taskname: return listid return None @@ -251,7 +251,7 @@ class RunQueue: """ lowest = 0 new_chain = [] - for entry in range(len(chain)): + for entry in xrange(len(chain)): if chain[entry] < chain[lowest]: lowest = entry new_chain.extend(chain[lowest:]) @@ -264,7 +264,7 @@ class RunQueue: """ if len(chain1) != len(chain2): return False - for index in range(len(chain1)): + for index in xrange(len(chain1)): if chain1[index] != chain2[index]: return False return True @@ -335,7 +335,7 @@ class RunQueue: deps_left = [] task_done = [] - for listid in range(numTasks): + for listid in xrange(numTasks): task_done.append(False) weight.append(0) deps_left.append(len(self.runq_revdeps[listid])) @@ -359,7 +359,7 @@ class RunQueue: # Circular dependency sanity check problem_tasks = [] - for task in range(numTasks): + for task in xrange(numTasks): if task_done[task] is False or deps_left[task] != 0: problem_tasks.append(task) logger.debug(2, "Task %s (%s) is not buildable\n", task, self.get_user_idstring(task)) @@ -437,7 +437,7 @@ class RunQueue: if taskid is not None: depends.append(taskid) - for task in range(len(taskData.tasks_name)): + for task in xrange(len(taskData.tasks_name)): depends = [] recrdepends = [] fnid = taskData.tasks_fnid[task] @@ -527,7 +527,7 @@ class RunQueue: # Algorithm is O(tasks) + O(tasks)*O(fnids) # reccumdepends = {} - for task in range(len(self.runq_fnid)): + for task in xrange(len(self.runq_fnid)): fnid = self.runq_fnid[task] if fnid not in reccumdepends: if fnid in tdepends_fnid: @@ -535,7 +535,7 @@ class RunQueue: else: reccumdepends[fnid] = set() reccumdepends[fnid].update(self.runq_depends[task]) - for task in range(len(self.runq_fnid)): + for task in xrange(len(self.runq_fnid)): taskfnid = self.runq_fnid[task] for fnid in reccumdepends: if task in reccumdepends[fnid]: @@ -548,7 +548,7 @@ class RunQueue: # # e.g. do_sometask[recrdeptask] = "do_someothertask" # (makes sure sometask runs after someothertask of all DEPENDS, RDEPENDS and intertask dependencies, recursively) - for task in range(len(self.runq_fnid)): + for task in xrange(len(self.runq_fnid)): if len(runq_recrdepends[task]) > 0: taskfnid = self.runq_fnid[task] for dep in reccumdepends[taskfnid]: @@ -617,7 +617,7 @@ class RunQueue: maps = [] delcount = 0 - for listid in range(len(self.runq_fnid)): + for listid in xrange(len(self.runq_fnid)): if runq_build[listid-delcount] == 1: maps.append(listid-delcount) else: @@ -644,7 +644,7 @@ class RunQueue: # Remap the dependencies to account for the deleted tasks # Check we didn't delete a task we depend on - for listid in range(len(self.runq_fnid)): + for listid in xrange(len(self.runq_fnid)): newdeps = [] origdeps = self.runq_depends[listid] for origdep in origdeps: @@ -656,14 +656,14 @@ class RunQueue: logger.verbose("Assign Weightings") # Generate a list of reverse dependencies to ease future calculations - for listid in range(len(self.runq_fnid)): + for listid in xrange(len(self.runq_fnid)): for dep in self.runq_depends[listid]: self.runq_revdeps[dep].add(listid) # Identify tasks at the end of dependency chains # Error on circular dependency loops (length two) endpoints = [] - for listid in range(len(self.runq_fnid)): + for listid in xrange(len(self.runq_fnid)): revdeps = self.runq_revdeps[listid] if len(revdeps) == 0: endpoints.append(listid) @@ -690,7 +690,7 @@ class RunQueue: # Sanity Check - Check for multiple tasks building the same provider prov_list = {} seen_fn = [] - for task in range(len(self.runq_fnid)): + for task in xrange(len(self.runq_fnid)): fn = taskData.fn_index[self.runq_fnid[task]] if fn in seen_fn: continue @@ -736,7 +736,7 @@ class RunQueue: if self.stamppolicy == "whitelist": stampwhitelist = self.self.stampfnwhitelist - for task in range(len(self.runq_fnid)): + for task in xrange(len(self.runq_fnid)): unchecked[task] = "" if len(self.runq_depends[task]) == 0: buildable.append(task) @@ -751,7 +751,7 @@ class RunQueue: if revdep in unchecked: buildable.append(revdep) - for task in range(len(self.runq_fnid)): + for task in xrange(len(self.runq_fnid)): if task not in unchecked: continue fn = self.taskData.fn_index[self.runq_fnid[task]] @@ -910,7 +910,7 @@ class RunQueue: self.failed_fnids = [] # Mark initial buildable tasks - for task in range(self.stats.total): + for task in xrange(self.stats.total): self.runq_running.append(0) self.runq_complete.append(0) if len(self.runq_depends[task]) == 0: @@ -1010,7 +1010,7 @@ class RunQueue: return # Sanity Checks - for task in range(self.stats.total): + for task in xrange(self.stats.total): if self.runq_buildable[task] == 0: logger.error("Task %s never buildable!", task) if self.runq_running[task] == 0: @@ -1130,7 +1130,7 @@ class RunQueue: Dump some debug information on the internal data structures """ logger.debug(3, "run_tasks:") - for task in range(len(self.runq_task)): + for task in xrange(len(self.runq_task)): logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task, taskQueue.fn_index[self.runq_fnid[task]], self.runq_task[task], @@ -1139,7 +1139,7 @@ class RunQueue: self.runq_revdeps[task]) logger.debug(3, "sorted_tasks:") - for task1 in range(len(self.runq_task)): + for task1 in xrange(len(self.runq_task)): if task1 in self.prio_map: task = self.prio_map[task1] logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task, diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py index dc8d0668c..fdd55ee83 100644 --- a/lib/bb/taskdata.py +++ b/lib/bb/taskdata.py @@ -493,7 +493,7 @@ class TaskData: dependees = self.get_dependees(targetid) for fnid in dependees: self.fail_fnid(fnid, missing_list) - for taskid in range(len(self.tasks_idepends)): + for taskid in xrange(len(self.tasks_idepends)): idepends = self.tasks_idepends[taskid] for (idependid, idependtask) in idepends: if idependid == targetid: @@ -558,7 +558,7 @@ class TaskData: logger.debug(3, ", ".join(self.run_names_index)) logger.debug(3, "build_targets:") - for buildid in range(len(self.build_names_index)): + for buildid in xrange(len(self.build_names_index)): target = self.build_names_index[buildid] targets = "None" if buildid in self.build_targets: @@ -566,7 +566,7 @@ class TaskData: logger.debug(3, " (%s)%s: %s", buildid, target, targets) logger.debug(3, "run_targets:") - for runid in range(len(self.run_names_index)): + for runid in xrange(len(self.run_names_index)): target = self.run_names_index[runid] targets = "None" if runid in self.run_targets: @@ -574,7 +574,7 @@ class TaskData: logger.debug(3, " (%s)%s: %s", runid, target, targets) logger.debug(3, "tasks:") - for task in range(len(self.tasks_name)): + for task in xrange(len(self.tasks_name)): logger.debug(3, " (%s)%s - %s: %s", task, self.fn_index[self.tasks_fnid[task]], diff --git a/lib/bb/utils.py b/lib/bb/utils.py index 0c2cccbc6..19ca45d80 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py @@ -194,10 +194,10 @@ def vercmp_string(val1, val2): val2 = val2[0].split('.') # add back decimal point so that .03 does not become "3" ! - for x in range(1, len(val1)): + for x in xrange(1, len(val1)): if val1[x][0] == '0' : val1[x] = '.' + val1[x] - for x in range(1, len(val2)): + for x in xrange(1, len(val2)): if val2[x][0] == '0' : val2[x] = '.' + val2[x] @@ -214,10 +214,10 @@ def vercmp_string(val1, val2): val2[-1] += '_' + val2_prepart # The above code will extend version numbers out so they # have the same number of digits. - for x in range(0, len(val1)): + for x in xrange(0, len(val1)): cmp1 = relparse(val1[x]) cmp2 = relparse(val2[x]) - for y in range(0, 3): + for y in xrange(0, 3): myret = cmp1[y] - cmp2[y] if myret != 0: __vercmp_cache__[valkey] = myret @@ -298,7 +298,7 @@ def _print_trace(body, line): logger.error("Printing the environment of the function") min_line = max(1, line-4) max_line = min(line + 4, len(body)-1) - for i in range(min_line, max_line + 1): + for i in xrange(min_line, max_line + 1): logger.error("\t%.4d:%s", i, body[i-1]) |