Example #1
0
def run(generators, number, repeat=1):
    print("Calculating speeds for first %d primes..." % number)
    template = "\r  ...%d of %d %s"
    heading = """\
Generator                             Elapsed    Speed
                                      (sec)      (primes/sec)
=============================================================="""
    records = []
    timer = Stopwatch()  # For measuring the total elapsed time.
    timer.start()
    N = len(generators)
    for i, generator in enumerate(generators):
        name = generator.__module__ + '.' + generator.__name__
        sys.stdout.write((template % (i + 1, N, name)).ljust(69))
        sys.stdout.flush()
        t = trial(generator, number, repeat)
        records.append((number / t, t, name))
    timer.stop()
    sys.stdout.write("\r%-69s\n" % "Done!")
    print('Total elapsed time: %.1f seconds' % timer.elapsed)
    print('')
    records.sort()
    print(heading)
    for speed, elapsed, name in records:
        print("%-36s  %4.2f      %8.1f" % (name, elapsed, speed))
    print('==============================================================\n')
Example #2
0
def run(generators, number, repeat=1):
    print ("Calculating speeds for first %d primes..." % number)
    template = "\r  ...%d of %d %s"
    heading = """\
Generator                             Elapsed    Speed
                                      (sec)      (primes/sec)
=============================================================="""
    records = []
    timer = Stopwatch()  # For measuring the total elapsed time.
    timer.start()
    N = len(generators)
    for i, generator in enumerate(generators):
        name = generator.__module__ + '.' + generator.__name__
        sys.stdout.write((template % (i+1, N, name)).ljust(69))
        sys.stdout.flush()
        t = trial(generator, number, repeat)
        records.append((number/t, t, name))
    timer.stop()
    sys.stdout.write("\r%-69s\n" % "Done!")
    print ('Total elapsed time: %.1f seconds' % timer.elapsed)
    print ('')
    records.sort()
    print (heading)
    for speed, elapsed, name in records:
        print ("%-36s  %4.2f      %8.1f" % (name, elapsed, speed))
    print ('==============================================================\n')
Example #3
0
def trial(generator, count, repeat=1):
    timer = Stopwatch()
    best = YEAR100
    for i in range(repeat):
        it = generator()
        timer.reset()
        timer.start()
        # Go to the count-th prime as fast as possible.
        p = next(islice(it, count - 1, count))
        timer.stop()
        best = min(best, timer.elapsed)
    return best
Example #4
0
def trial(generator, count, repeat=1):
    timer = Stopwatch()
    best = YEAR100
    for i in range(repeat):
        it = generator()
        timer.reset()
        timer.start()
        # Go to the count-th prime as fast as possible.
        p = next(islice(it, count-1, count))
        timer.stop()
        best = min(best, timer.elapsed)
    return best