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')
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')
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
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