Skip to content

Instantly share code, notes, and snippets.

View mikeckennedy's full-sized avatar

Michael Kennedy mikeckennedy

View GitHub Profile
@mikeckennedy
mikeckennedy / memory_per_via_slots.py
Last active May 25, 2016 15:12
Custom types store their data in individualized, dynamic dictionaries via self.__dict__. Using __slots__ to limit available attribute names and move the name/key storage outside the instance to a type level can significantly improve memory usage. See EOF for perf numbers.
# ############ __slots__ for improved memory usage #############
# Create by Michael Kennedy (@mkennedy)
#
# Overview:
# Custom types store their data in individualized, dynamic dictionaries
# via self.__dict__. Using __slots__ to limit available attribute names
# and move the name/key storage outside the instance to a type level
# can significantly improve memory usage. See EOF for perf numbers.
#
@mikeckennedy
mikeckennedy / dict_vs_list_speed_test.py
Created May 12, 2016 06:20
If you had a large set of data and you need to "find" a subset of elements by some value (equality not a computation, such as between two values), it is dramatically faster. See the output comments at the very end of this file for numbers.
# ############ DICTIONARY vs. LIST LOOKUP PERF #############
# Create by Michael Kennedy (@mkennedy)
#
# Overview:
# If you had a large set of data and you need to "find" a subset
# of elements by some value (equality not a computation, such as
# between two values), it is dramatically faster. See the output
# comments at the very end of this file for numbers.
#
import collections
@mikeckennedy
mikeckennedy / monitor.py
Last active January 27, 2016 18:49
Add opbeat integration to Pyramid web apps
import opbeat
import opbeat.instrumentation
import opbeat.instrumentation.control
from pyramid.events import NewRequest
from pyramid.events import subscriber
from pyramid.httpexceptions import HTTPRedirection, HTTPException
opbeat_is_debug_mode = False
opbeat.instrumentation.control.instrument()