aboutsummaryrefslogtreecommitdiff
path: root/bindings/python/benchmark.py
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/python/benchmark.py')
-rw-r--r--bindings/python/benchmark.py81
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