1import datetime 2import marisa 3import sys 4 5time_begin = datetime.datetime.now() 6keys = [] 7for line in sys.stdin: 8 keys.append(line.rstrip()) 9time_end = datetime.datetime.now() 10print "input:", time_end - time_begin 11 12time_begin = datetime.datetime.now() 13dic = dict() 14for i in range(len(keys)): 15 dic[keys[i]] = i 16time_end = datetime.datetime.now() 17print "dict_build:", time_end - time_begin 18 19time_begin = datetime.datetime.now() 20for key in keys: 21 dic.get(key) 22time_end = datetime.datetime.now() 23print "dict_lookup:", time_end - time_begin 24 25time_begin = datetime.datetime.now() 26keyset = marisa.Keyset() 27for key in keys: 28 keyset.push_back(key) 29time_end = datetime.datetime.now() 30print "keyset_build:", time_end - time_begin 31 32time_begin = datetime.datetime.now() 33trie = marisa.Trie() 34trie.build(keyset) 35time_end = datetime.datetime.now() 36print "trie_build:", time_end - time_begin 37 38time_begin = datetime.datetime.now() 39agent = marisa.Agent() 40for key in keys: 41 agent.set_query(key) 42 trie.lookup(agent) 43 agent.key_id() 44time_end = datetime.datetime.now() 45print "trie_agent_lookup:", time_end - time_begin 46 47time_begin = datetime.datetime.now() 48for key in keys: 49 trie.lookup(key) 50time_end = datetime.datetime.now() 51print "trie_lookup:", time_end - time_begin 52 53time_begin = datetime.datetime.now() 54for i in range(len(keys)): 55 agent.set_query(i) 56 trie.reverse_lookup(agent) 57 agent.key_str() 58time_end = datetime.datetime.now() 59print "trie_agent_reverse_lookup:", time_end - time_begin 60 61time_begin = datetime.datetime.now() 62for i in range(len(keys)): 63 trie.reverse_lookup(i) 64time_end = datetime.datetime.now() 65print "trie_reverse_lookup:", time_end - time_begin 66 67time_begin = datetime.datetime.now() 68for key in keys: 69 agent.set_query(key) 70 while trie.common_prefix_search(agent): 71 agent.key_str() 72time_end = datetime.datetime.now() 73print "trie_agent_common_prefix_search:", time_end - time_begin 74 75time_begin = datetime.datetime.now() 76for key in keys: 77 agent.set_query(key) 78 while trie.predictive_search(agent): 79 agent.key_str() 80time_end = datetime.datetime.now() 81print "trie_agent_predictive_search:", time_end - time_begin 82