# HG changeset patch # User paulb # Date 1127773627 0 # Node ID 93f4b77f294f83130abeebd20edec9d481889f09 # Parent 5026061df1caffb1ba58787599b925917330e80e [project @ 2005-09-26 22:27:07 by paulb] Introduced a window size option in order to limit the number of open file descriptors and to help assess performance/scalability. diff -r 5026061df1ca -r 93f4b77f294f tests/start_indexer.py --- a/tests/start_indexer.py Mon Sep 26 22:26:22 2005 +0000 +++ b/tests/start_indexer.py Mon Sep 26 22:27:07 2005 +0000 @@ -8,24 +8,25 @@ indexer = Indexer(filename) channel.send(indexer.get_index()) -def get_searcher(filenames): +def get_searcher(filenames, window_size): master_index = {} # Start indexing. - channels = [] - for filename in filenames: - channels.append(start(apply_indexer, filename)) + for i in range(0, len(filenames), window_size): + channels = [] + for filename in filenames[i:i + window_size]: + channels.append(start(apply_indexer, filename)) - # Start listening for responses. + # Start listening for responses. - exchange = Exchange(channels) - while len(channels) > 0: - print "Waiting for %d channels..." % len(channels) - for channel in exchange.ready(): - index = channel.receive() - update(master_index, index) - channels.remove(channel) + exchange = Exchange(channels) + while len(channels) > 0: + print "Waiting for %d channels..." % len(channels) + for channel in exchange.ready(): + index = channel.receive() + update(master_index, index) + channels.remove(channel) # Provide a search interface. @@ -33,8 +34,8 @@ if __name__ == "__main__": import sys - filenames = sys.argv[1:] - searcher = get_searcher(filenames) + window_size, filenames = int(sys.argv[1]), sys.argv[2:] + searcher = get_searcher(filenames, window_size) while 1: print "Pattern:", pattern = raw_input()