On Tue, May 13, 2014 at 2:38 PM, Dylan Baker <[email protected]> wrote: > This uses python's __slots__ attribute on Test. This limits the > attributes of the class to exclusively those defined by the __slots__ > attribute. This saves memory since python doesn't need to allocate > additional memory for new attributes that might be added. > > It is perfectly valid to extend this in a subclass by setting __slots__, > that list is appended to the lists in the parent classes, so only new > names need to be added. > > This cut the memory usage of loading tests.quick (and only loading) on > my system from ~32M to ~24M. > > Signed-off-by: Dylan Baker <[email protected]> > --- > framework/exectest.py | 2 ++ > framework/gleantest.py | 1 - > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/framework/exectest.py b/framework/exectest.py > index 18f4818..c863d20 100644 > --- a/framework/exectest.py > +++ b/framework/exectest.py > @@ -50,6 +50,8 @@ else: > > class Test(object): > ENV = Environment() > + __slots__ = ['ENV', 'run_concurrent', 'env', 'result', 'cwd', '_command', > + '_test_hook_execute_run']
Does ENV need to be in the slots? It's a class-level attribute, not instance-level. I played around with some quick tests, and it seems to work OK, but I didn't do anything exhaustive... > > def __init__(self, command, run_concurrent=False): > ''' > diff --git a/framework/gleantest.py b/framework/gleantest.py > index 4e09d41..2f22c87 100644 > --- a/framework/gleantest.py > +++ b/framework/gleantest.py > @@ -34,7 +34,6 @@ class GleanTest(Test): > def __init__(self, name, **kwargs): > super(GleanTest, self).__init__([glean_executable, "-o", "-v", "-v", > "-v", "-t", "+" + name]) > - self.name = name > > @Test.command.getter > def command(self): > -- > 2.0.0.rc2 > > _______________________________________________ > Piglit mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
