-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathgxapi_perf_test.py
More file actions
71 lines (61 loc) · 2.04 KB
/
gxapi_perf_test.py
File metadata and controls
71 lines (61 loc) · 2.04 KB
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
# Copyright (c) 2024 Bentley Systems, Incorporated. All rights reserved.
import time
import geosoft.gxapi as gxa
import geosoft.gxapi_old.gxapi as gxo
import geosoft.gxapi.gxapi_cy as gxc
def simple_set_get_doubles_baremetal(dn):
print("simple_set_get_doubles_baremetal start")
tstart = time.perf_counter()
for i in range(0, 1000000):
xv, yv, zv = dn._get_scale(0, 0, 0)
dn._set_scale(2.0, 3.0, 4.0)
elapsed = time.perf_counter() - tstart
print("simple_set_get_doubles_baremetal end: {}".format(elapsed))
def simple_set_get_doubles(dn, x, y, z):
print("simple_set_get_doubles start")
tstart = time.perf_counter()
for i in range(0, 1000000):
dn.get_scale(x, y, z)
dn.set_scale(2.0, 3.0, 4.0)
elapsed = time.perf_counter() - tstart
print("simple_set_get_doubles end: {}".format(elapsed))
def simple_set_get_string_baremetal(dn):
print("simple_set_get_string_baremetal start")
tstart = time.perf_counter()
for i in range(0, 1000000):
s = dn._get_axis_font("".encode())
dn._set_axis_font("NewFont".encode())
elapsed = time.perf_counter() - tstart
print("simple_set_get_string_baremetal end: {}".format(elapsed))
def simple_set_get_string(dn, s):
print("simple_set_get_string start")
tstart = time.perf_counter()
for i in range(0, 1000000):
dn.get_axis_font(s)
dn.set_axis_font("NewFont")
elapsed = time.perf_counter() - tstart
print("simple_set_get_string end: {}".format(elapsed))
ctx = gxa.GXContext.create("", "")
ctxo = gxo.GXContext.create("", "")
dn = gxa.GX3DN.create()
dno = gxo.GX3DN.create()
x = gxa.float_ref()
y = gxa.float_ref()
z = gxa.float_ref()
s = gxa.str_ref()
xo = gxo.float_ref()
yo = gxo.float_ref()
zo = gxo.float_ref()
so = gxo.str_ref()
print("OldAPI")
simple_set_get_doubles(dno, xo, yo, zo)
simple_set_get_string(dno, so)
print("NewAPI")
simple_set_get_doubles_baremetal(dn)
simple_set_get_doubles(dn, x, y, z)
simple_set_get_string_baremetal(dn)
simple_set_get_string(dn, s)
del dn
del dno
del ctxo
del ctx