Ejemplo n.º 1
0
    def test_base(self):
        # create a dependency network, and see how the performance changes
        # when adjusting the amount of threads
        pool = ThreadPool(0)
        ni = 1000               # number of items to process
        for num_threads in range(0, self.max_threads*2 + 1, self.max_threads // 2):
            pool.set_size(num_threads)
            for num_transformers in (1, 5, 10):
                for read_mode in range(2):
                    ts, rcs = add_task_chain(pool, ni, count=num_transformers,
                                                feedercls=IteratorThreadTask,
                                                transformercls=FixturePerformanceThreadTask,
                                                include_verifier=False)

                    mode_info = "read(0)"
                    if read_mode == 1:
                        mode_info = "read(1) * %i" % ni
                    # END mode info
                    fmt = "Threadcount=%%i: Produced %%i items using %s in %%i transformations in %%f s (%%f items / s)\n" % mode_info
                    reader = rcs[-1]
                    st = time.time()
                    if read_mode == 1:
                        for i in range(ni):
                            assert len(reader.read(1)) == 1
                        # END for each item to read
                    else:
                        assert len(reader.read(0)) == ni
                    # END handle read mode
                    elapsed = time.time() - st
                    sys.stderr.write(fmt % (num_threads, ni, num_transformers, elapsed, ni / elapsed))