File: pyobjectmap_vs_dict.py

package info (click to toggle)
python-cykhash 2.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,240 kB
  • sloc: python: 3,954; sh: 90; makefile: 7
file content (98 lines) | stat: -rw-r--r-- 2,069 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import perfplot

from cykhash import PyObjectMap

def setmeup(n):
    print(n)
    s = dict()
    p = PyObjectMap()

    for i in range(n):
        s[i] = i
        p[i] = i
    return (s,p)

def contains_dict(maps):
    s = maps[0]
    n = len(s)//2
    for i in range(n, 3*n):
        i in s

def contains_pyobjectmap(maps):
    p = maps[1]
    n = len(p)//2
    for i in range(n, 3*n):
        i in p

def discard_insert_dict(maps):
    s = maps[0]
    n = len(s)
    for i in range(n):
        del s[i]
    for i in range(n):
        s[i] = i

def discard_insert_pyobjectmap(maps):
    p = maps[1]
    n = len(p)
    for i in range(n):
        p.discard(i)
    for i in range(n):
        p[i] = i

def insert_dict(maps):
    n = len(maps[1])
    s = dict()
    for i in range(n):
        s[i] = i

def insert_pyobjectmap(maps):
    p = PyObjectMap()
    n = len(maps[0])
    for i in range(n):
        p[i] = i
  
def insert_pyobjectmap_preallocated(maps):
    n = len(maps[1])
    p = PyObjectMap(int(1.3*n))   
    for i in range(n):
        p[i] = i

if True:  
    perfplot.show(
        setup = setmeup,
        n_range=[2**k for k in range(18)],
        kernels=[
            #insert_set,
            #insert_pyobjectset,
            contains_dict,
            contains_pyobjectmap,
            discard_insert_dict,
            discard_insert_pyobjectmap,
            ],
        logx=False,
        logy=False,
        xlabel='number of operations',
        title = "pyobject_map vs dict",
        equality_check = None,
        )

if True:
    perfplot.show(
        setup = setmeup,
        n_range=[2**k for k in range(18)],
        kernels=[
            insert_dict,
            insert_pyobjectmap,
            insert_pyobjectmap_preallocated,
            #contains_set,
            #contains_pyobjectset,
            #discard_insert_set,
            #discard_insert_pyobjectset,
            ],
        logx=False,
        logy=False,
        xlabel='number of operations',
        title = "pyobject_map vs dict",
        equality_check = None,
        )