from __future__ import with_statement import imvu import imvu.test import imvu.service from imvu.task import task, threadtask, Return import time class ThreadtaskPerformanceTest(imvu.test.TestCase): def testThreadtaskPerformance(self): @threadtask def threadTask(): return 1 @task def mainTask(): for i in xrange(25000): n = yield threadTask() self.assertEqual(1, n) self.serviceProvider = imvu.service.TestServiceProvider() start = time.time() self.serviceProvider.taskScheduler._call(mainTask()) end = time.time() print "took %f seconds to run 25000 threadtasks (%f tasks/sec)" % (end - start, 5000.0 / (end-start)) if __name__ == '__main__': imvu.test.main()