Skip to content

Instantly share code, notes, and snippets.

@Tinche
Created August 19, 2016 08:27
Show Gist options
  • Save Tinche/fe46acb66b9212dd0bf207fbf92c2efa to your computer and use it in GitHub Desktop.
Save Tinche/fe46acb66b9212dd0bf207fbf92c2efa to your computer and use it in GitHub Desktop.
> cat t.py
class A:
__slots__ = ('x', 'y', 'z', 'a', 'b', 'c')
def __init__(self, x, y, z, a, b, c):
#_setattr = object.__setattr__.__get__(self, A)
_setattr = object.__setattr__
_setattr('x', x)
_setattr('y', y)
_setattr('z', z)
_setattr('a', a)
_setattr('b', b)
_setattr('c', c)
def __setattr__(self, name, value):
raise AttributeError⏎
> pyperf timeit --rigorous -g -s "from t import A" "A(1, 2, 3, 4, 5, 6)"
........................................
1.32 us: 2 ########
1.33 us: 18 ####################################################################
1.34 us: 19 #######################################################################
1.35 us: 21 ###############################################################################
1.36 us: 14 #####################################################
1.37 us: 11 #########################################
1.38 us: 10 ######################################
1.39 us: 6 #######################
1.40 us: 3 ###########
1.41 us: 4 ###############
1.42 us: 4 ###############
1.43 us: 2 ########
1.44 us: 2 ########
1.45 us: 2 ########
1.46 us: 0 |
1.47 us: 1 ####
1.48 us: 0 |
1.49 us: 0 |
1.50 us: 0 |
1.51 us: 0 |
1.52 us: 1 ####
Median +- std dev: 1.36 us +- 0.03 us
> cat t.py
class A:
__slots__ = ('x', 'y', 'z', 'a', 'b', 'c')
def __init__(self, x, y, z, a, b, c):
_setattr = object.__setattr__.__get__(self, A)
#_setattr = object.__setattr__
_setattr('x', x)
_setattr('y', y)
_setattr('z', z)
_setattr('a', a)
_setattr('b', b)
_setattr('c', c)
def __setattr__(self, name, value):
raise AttributeError⏎
> pyperf timeit --rigorous -g -s "from t import A" "A(1, 2, 3, 4, 5, 6)"
........................................
1.00 us: 3 ############
1.01 us: 7 ############################
1.02 us: 20 ###############################################################################
1.03 us: 18 #######################################################################
1.04 us: 13 ###################################################
1.05 us: 15 ###########################################################
1.06 us: 12 ###############################################
1.06 us: 15 ###########################################################
1.07 us: 7 ############################
1.08 us: 3 ############
1.09 us: 3 ############
1.10 us: 1 ####
1.11 us: 1 ####
1.12 us: 1 ####
1.12 us: 0 |
1.13 us: 0 |
1.14 us: 0 |
1.15 us: 0 |
1.16 us: 0 |
1.17 us: 0 |
1.18 us: 1 ####
Median +- std dev: 1.04 us +- 0.03 us
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment