2011/4/25 Stefan Behnel <stefan...@behnel.de>: > Vitja Makarov, 25.04.2011 08:19: >> >> 2011/4/25 Stefan Behnel: >>> >>> Stefan Behnel, 07.04.2011 13:52: >>>> >>>> Stefan Behnel, 07.04.2011 13:46: >>>>> >>>>> I just noticed that the CPython pyregr tests have jumped up from ~14 >>>>> minutes for a run to ~4 hours when we added generator support. >>>>> >>>>> >>>>> >>>>> https://sage.math.washington.edu:8091/hudson/job/cython-devel-tests-pyregr-py26-c/buildTimeTrend >>>>> >>>>> I currently have no idea why that is (well, it's likely because we >>>>> compile >>>>> more tests now, but Vitja's branch ran the tests in ~30 minutes). It >>>>> would >>>>> be great if someone could find the time to analyse this problem. The >>>>> current run time makes it basically impossible to keep these tests >>>>> enabled. >>>> >>>> Ok, it looks like this is mostly an issue with the Py2.6 tests. The >>>> Py2.7 >>>> tests take 30-45 minutes, which is very long, but not completely out of >>>> bounds. I've disabled the Py2.6 pyregr tests for now. >>> >>> There seems to be a huge memory leak which almost certainly accounts for >>> this. The Python process that runs the pyregr suite ends up with about >>> 50GB >>> of memory at the end, also in the latest Py3k builds. >>> >>> I have no idea where it may be, but it started to show when we merged the >>> generator support. That's where I noticed the instant jump in the >>> runtime. >> >> That's very strange for my branch it takes about 30 minutes that is ok. > > There's also a second path that's worth investigating. As part of the merge, > there was another change that came in: the CythonPyregrTestCase > implementation. This means that the regression tests are now being run > differently than before. The massive memory consumption may simply be due to > the mass of unit tests being loaded into memory. >
def run_test(): .................................. try: module = __import__(self.module) if hasattr(module, 'test_main'): module.test_main() except (unittest.SkipTest, support.ResourceDenied): result.addSkip(self, 'ok') It seems that all the modules stay loaded so may be they should be unloaded with del sys.modules[module_name]? -- vitja. _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel