xref: /aosp_15_r20/external/marisa-trie/bindings/python/benchmark.py (revision ab8db090fce404b23716c4c9194221ee27efe31c)
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