mirror of https://github.com/9001/r0c.git
69 lines
1.4 KiB
Python
69 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import time
|
|
|
|
t0 = 0
|
|
|
|
|
|
def td(msg):
|
|
global t0
|
|
t1 = time.time()
|
|
print("{0} {1:.6f} {2}\n".format(t1, t1 - t0, msg))
|
|
t0 = t1
|
|
|
|
|
|
class Foo(object):
|
|
def __init__(self, n):
|
|
self.n = n
|
|
self.v2 = int(n * 1.3)
|
|
|
|
|
|
td("started")
|
|
|
|
n_mb = 24
|
|
|
|
haystack = []
|
|
needle = None
|
|
needle_at = int(n_mb * 1024 * 1024 * 0.74)
|
|
for n1 in range(n_mb):
|
|
print(n_mb, n1)
|
|
for n2 in range(1024):
|
|
for n3 in range(1024):
|
|
n = (n1 * 1024 + n2) * 1024 + n3
|
|
haystack.append(Foo(n))
|
|
if n == needle_at:
|
|
needle = haystack[-1]
|
|
td("built list")
|
|
|
|
# print(haystack.index(needle))
|
|
# td('find needle')
|
|
print(haystack[needle_at])
|
|
td("get abs pos needle")
|
|
|
|
print(haystack[int(0.31 * n_mb * 1024 * 1024)])
|
|
td("get abs pos other")
|
|
|
|
# py2 58.6% ram
|
|
# 1515537393.86 25.088947 built list
|
|
# 1515537394.18 0.313340 find needle
|
|
# 1515537394.18 0.000040 get abs pos
|
|
|
|
# py3 31.7% ram
|
|
# 1515537445.5261745 21.067613 built list
|
|
# 1515537445.7479792 0.221805 find needle
|
|
# 1515537445.7480137 0.000035 get abs pos
|
|
|
|
# ^ without v2 member
|
|
# |
|
|
# v with v2 member
|
|
|
|
# py2 62.3% ram
|
|
# 1515537643.67 29.696990 built list
|
|
# 1515537643.67 0.000044 get abs pos needle
|
|
# 1515537643.67 0.000017 get abs pos other
|
|
|
|
# py3 36.5% ram
|
|
# 1515537590.0602984 27.699614 built list
|
|
# 1515537590.0603702 0.000072 get abs pos needle
|
|
# 1515537590.060382 0.000012 get abs pos other
|