diff options
Diffstat (limited to 'bindings/python/benchmark.py')
-rw-r--r-- | bindings/python/benchmark.py | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/bindings/python/benchmark.py b/bindings/python/benchmark.py new file mode 100644 index 0000000..3ccdf54 --- /dev/null +++ b/bindings/python/benchmark.py @@ -0,0 +1,81 @@ +import datetime +import marisa +import sys + +time_begin = datetime.datetime.now() +keys = [] +for line in sys.stdin: + keys.append(line.rstrip()) +time_end = datetime.datetime.now() +print "input:", time_end - time_begin + +time_begin = datetime.datetime.now() +dic = dict() +for i in range(len(keys)): + dic[keys[i]] = i +time_end = datetime.datetime.now() +print "dict_build:", time_end - time_begin + +time_begin = datetime.datetime.now() +for key in keys: + dic.get(key) +time_end = datetime.datetime.now() +print "dict_lookup:", time_end - time_begin + +time_begin = datetime.datetime.now() +keyset = marisa.Keyset() +for key in keys: + keyset.push_back(key) +time_end = datetime.datetime.now() +print "keyset_build:", time_end - time_begin + +time_begin = datetime.datetime.now() +trie = marisa.Trie() +trie.build(keyset) +time_end = datetime.datetime.now() +print "trie_build:", time_end - time_begin + +time_begin = datetime.datetime.now() +agent = marisa.Agent() +for key in keys: + agent.set_query(key) + trie.lookup(agent) + agent.key_id() +time_end = datetime.datetime.now() +print "trie_agent_lookup:", time_end - time_begin + +time_begin = datetime.datetime.now() +for key in keys: + trie.lookup(key) +time_end = datetime.datetime.now() +print "trie_lookup:", time_end - time_begin + +time_begin = datetime.datetime.now() +for i in range(len(keys)): + agent.set_query(i) + trie.reverse_lookup(agent) + agent.key_str() +time_end = datetime.datetime.now() +print "trie_agent_reverse_lookup:", time_end - time_begin + +time_begin = datetime.datetime.now() +for i in range(len(keys)): + trie.reverse_lookup(i) +time_end = datetime.datetime.now() +print "trie_reverse_lookup:", time_end - time_begin + +time_begin = datetime.datetime.now() +for key in keys: + agent.set_query(key) + while trie.common_prefix_search(agent): + agent.key_str() +time_end = datetime.datetime.now() +print "trie_agent_common_prefix_search:", time_end - time_begin + +time_begin = datetime.datetime.now() +for key in keys: + agent.set_query(key) + while trie.predictive_search(agent): + agent.key_str() +time_end = datetime.datetime.now() +print "trie_agent_predictive_search:", time_end - time_begin |