Confirmed.

On Wed, Oct 14, 2009 at 05:29:09PM +0545, Daniel Drake wrote:
> So, I reflashed 2 XOs, booted for the first time, entered a name. On
> one, I modified sugar.bundle.ActivityBundle.read_manifest() to be a
> no-op, then turned it off. On the other, I just turned it off.

I reproduced this experiment.  Used build 802, with a limited set of 22
activities [1], with a similar change [2].

> Then I powered both on at the same time and started a stopwatch. I
> measured how long it takes for the XOs to reach the stage of boot
> where the XO stick figure and the activity icons are visible.

1255565448 power up both XOs
1255565533 modified XO boot complete
1255565539 unmodified XO boot complete

> The one with the modification reached this point *55* seconds faster
> than the other one!

In my case, about 6 seconds.

I feel that even this small time was worth it, so I plan to patch this
for the friends' kids I've got laptops deployed to.

Is there a collection of 802 performance improvement patches?

Notes:

1.  the activities installed were from "G1G1 Activities for 8.2" and
were "Browse Calculate Chat Distance Etoys Implode Maze Measure Memorize
Moon Paint Pippy Read Record Ruler Scratch Speak TamTamMini
TamTamSynthLab Terminal TurtleArt Write"

2.  the change was to activitybundle.py in
/usr/lib/python2.5/site-packages/sugar/bundle/ and removed all code in
read_manifest(), leaving just "pass":

    def read_manifest(self):
        pass

-- 
James Cameron
http://quozl.linux.org.au/
--- activitybundle.py.orig	2009-10-15 00:09:04.000000000 +0000
+++ activitybundle.py	2009-10-15 00:09:40.000000000 +0000
@@ -79,43 +79,7 @@
         return ret
         
     def read_manifest(self):
-        """read_manifest: sets self.manifest to list of lines in MANIFEST, 
-        with invalid lines replaced by empty lines.
-        
-        Since absolute order carries information on file history, it should 
-        be preserved. For instance, when renaming a file, you should leave
-        the new name on the same line as the old one.
-        """
-        lines = self._raw_manifest()
-
-        # Remove trailing newlines, they do not help keep absolute position.
-        while lines and lines[-1] == "":
-            lines = lines[:-1]
-
-        for num, line in enumerate(lines):
-            if not line:
-                continue
-
-            # Remove duplicates
-            if line in lines[0:num]:
-                lines[num] = ""
-                logging.warning("Bundle %s: duplicate entry in MANIFEST: %s"
-                                % (self._name,line))
-                continue
-            
-            # Remove MANIFEST
-            if line == "MANIFEST":
-                lines[num] = ""
-                logging.warning("Bundle %s: MANIFEST includes itself: %s"
-                                % (self._name,line))
-                
-            # Remove invalid files
-            if not self.is_file(line):
-                lines[num] = ""
-                logging.warning("Bundle %s: invalid entry in MANIFEST: %s"
-                                % (self._name,line))
-
-        self.manifest = lines
+	pass
     
     def get_files(self, manifest = None):
         files = [line for line in (manifest or self.manifest) if line]
_______________________________________________
Devel mailing list
[email protected]
http://lists.laptop.org/listinfo/devel

Reply via email to