Skip to content

Instantly share code, notes, and snippets.

@rhizoome
Last active December 29, 2015 06:39
Show Gist options
  • Save rhizoome/7630826 to your computer and use it in GitHub Desktop.
Save rhizoome/7630826 to your computer and use it in GitHub Desktop.
Token Size
{
"metadata": {
"name": "Token Size"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": "import pympler.asizeof as size\nimport random\nimport copy",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": "class Empty():\n __slots__ = []",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": "size.asizeof(Empty())",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": "72"
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": "size.asizeof(())",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": "56"
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": "class Token():\n __slots__ = [\"token_type\", \"token\", \"start_pos_line\", \"start_pos_col\"]\n def __init__(self):\n self.token_type = 1\n self.token = 1\n self.start_pos_line = random.randint(0, 1000)\n self.start_pos_col = random.randint(0, 80)\n def __getitem__(self, key):\n if key == 0:\n return self.token_type\n elif key == 1:\n return self.token\n elif key == 2:\n return (self.start_pos_line, self.start_pos_col)\n else:\n raise IndexError()\n ",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": "size.asizeof(Token())",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": "264"
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": "tuple(Token())",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 16,
"text": "(1, 1, (76, 54))"
}
],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": "overlapping_refs = []\nfor i in range(1000):\n a = Token()\n a.token = i\n overlapping_refs.append(a)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": "size.asizeof(overlapping_refs) / 1000",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": "144.28"
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": "overlapping_refs = []\nfor i in range(1000):\n overlapping_refs.append((1, i, random.randint(0, 1000), random.randint(0, 80)))",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": "size.asizeof(overlapping_refs) / 1000",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": "152.192"
}
],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": "class Token2():\n __slots__ = [\"token_type\", \"token\", \"start_pos\"]\n def __init__(self):\n self.token_type = 1\n self.token = 1\n self.start_pos = (random.randint(0, 1000), random.randint(0, 80))",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": "overlapping_refs = []\nfor i in range(1000):\n a = Token2()\n a.token = i\n overlapping_refs.append(a)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": "size.asizeof(overlapping_refs) / 1000",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": "209.136"
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": "overlapping_refs = []\nfor i in range(1000):\n overlapping_refs.append((1, i, (random.randint(0, 1000), random.randint(0, 80))))",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": "size.asizeof(overlapping_refs) / 1000",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 15,
"text": "216.384"
}
],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment