Skip to content

Commit 24740f2

Browse files
committed
Added performance test to compare inst.__class__() vs type(inst)() class. The first one is faster, although I would have expected the latter one to be faster
1 parent bcd37b6 commit 24740f2

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

lib/git/ext/gitdb

Submodule gitdb updated from 18152fe to 425ecf0

test/git/performance/test_utils.py

+21
Original file line numberDiff line numberDiff line change
@@ -151,3 +151,24 @@ def slow_iter(ni):
151151
print >> sys.stderr, "Iterated %i items from iterator in %f s ( %f acc / s)" % (ni, elapsed, ni / elapsed)
152152
# END for each number of iterations
153153

154+
def test_type_vs_inst_class(self):
155+
class NewType(object):
156+
pass
157+
158+
# lets see which way is faster
159+
inst = NewType()
160+
161+
ni = 1000000
162+
st = time()
163+
for i in xrange(ni):
164+
inst.__class__()
165+
# END for each item
166+
elapsed = time() - st
167+
print >> sys.stderr, "Created %i items using inst.__class__ in %f s ( %f items / s)" % (ni, elapsed, ni / elapsed)
168+
169+
st = time()
170+
for i in xrange(ni):
171+
type(inst)()
172+
# END for each item
173+
elapsed = time() - st
174+
print >> sys.stderr, "Created %i items using type(inst)() in %f s ( %f items / s)" % (ni, elapsed, ni / elapsed)

0 commit comments

Comments
 (0)