Created
April 22, 2020 08:53
-
-
Save cr0hn/2fcc6d0ea1dec1a1a8aae8366bee3de2 to your computer and use it in GitHub Desktop.
Analysis of resulting size for different Python data types: dict, classes, classes with __slots__, namedtuples and dataclasses
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Number of elements: 10 | |
| ----------------------- | |
| Dict: 360 bytes # 636 bytes | |
| Namedtuple: 120 bytes # 396 bytes | |
| Class: 48 bytes # 1202 bytes | |
| Class Slots: 48 bytes # 556 bytes | |
| Dataclass: 48 bytes # 468 bytes | |
| Number of elements: 100 | |
| ------------------------ | |
| Dict: 4696 bytes # 7492 bytes | |
| Namedtuple: 840 bytes # 3636 bytes | |
| Class: 48 bytes # 13586 bytes | |
| Class Slots: 48 bytes # 7540 bytes | |
| Dataclass: 48 bytes # 4268 bytes | |
| Number of elements: 1000 | |
| ------------------------- | |
| Dict: 36960 bytes # 64956 bytes | |
| Namedtuple: 8040 bytes # 36036 bytes | |
| Class: 48 bytes # 125950 bytes | |
| Class Slots: 48 bytes # 65004 bytes | |
| Dataclass: 48 bytes # 39028 bytes |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| """ | |
| Analysis of resulting size for different Python data types. It was analyzed: | |
| - dict | |
| - classes | |
| - classes with __slots__ | |
| - dataclases | |
| - Namedtuples | |
| Author: Daniel García (cr0hn) | |
| Last update: 2020/22/04 | |
| Python version: 3.8 | |
| """ | |
| import sys | |
| from gc import get_referents | |
| from dataclasses import dataclass | |
| from collections import namedtuple | |
| from types import ModuleType, FunctionType | |
| # | |
| # This function was got from: https://stackoverflow.com/q/58675479/8153205 | |
| # | |
| # Custom objects know their class. | |
| # Function objects seem to know way too much, including modules. | |
| # Exclude modules as well. | |
| BLACKLIST = type, ModuleType, FunctionType | |
| def getsize(obj): | |
| """sum size of object & members.""" | |
| if isinstance(obj, BLACKLIST): | |
| raise TypeError( | |
| 'getsize() does not take argument of type: ' + str(type(obj))) | |
| seen_ids = set() | |
| size = 0 | |
| objects = [obj] | |
| while objects: | |
| need_referents = [] | |
| for obj in objects: | |
| if not isinstance(obj, BLACKLIST) and id(obj) not in seen_ids: | |
| seen_ids.add(id(obj)) | |
| size += sys.getsizeof(obj) | |
| need_referents.append(obj) | |
| objects = get_referents(*need_referents) | |
| return size | |
| # ------------------------------------------------------------------------- | |
| # Small | |
| # ------------------------------------------------------------------------- | |
| class Klass: | |
| def __init__(self, **kwargs): | |
| for x, y in kwargs.items(): | |
| setattr(self, x, y) | |
| @dataclass | |
| class DataKlass10: | |
| v0: str | |
| v1: str | |
| v2: str | |
| v3: str | |
| v4: str | |
| v5: str | |
| v6: str | |
| v7: str | |
| v8: str | |
| v9: str | |
| @dataclass | |
| class DataKlass100: | |
| v0: str | |
| v1: str | |
| v2: str | |
| v3: str | |
| v4: str | |
| v5: str | |
| v6: str | |
| v7: str | |
| v8: str | |
| v9: str | |
| v10: str | |
| v11: str | |
| v12: str | |
| v13: str | |
| v14: str | |
| v15: str | |
| v16: str | |
| v17: str | |
| v18: str | |
| v19: str | |
| v20: str | |
| v21: str | |
| v22: str | |
| v23: str | |
| v24: str | |
| v25: str | |
| v26: str | |
| v27: str | |
| v28: str | |
| v29: str | |
| v30: str | |
| v31: str | |
| v32: str | |
| v33: str | |
| v34: str | |
| v35: str | |
| v36: str | |
| v37: str | |
| v38: str | |
| v39: str | |
| v40: str | |
| v41: str | |
| v42: str | |
| v43: str | |
| v44: str | |
| v45: str | |
| v46: str | |
| v47: str | |
| v48: str | |
| v49: str | |
| v50: str | |
| v51: str | |
| v52: str | |
| v53: str | |
| v54: str | |
| v55: str | |
| v56: str | |
| v57: str | |
| v58: str | |
| v59: str | |
| v60: str | |
| v61: str | |
| v62: str | |
| v63: str | |
| v64: str | |
| v65: str | |
| v66: str | |
| v67: str | |
| v68: str | |
| v69: str | |
| v70: str | |
| v71: str | |
| v72: str | |
| v73: str | |
| v74: str | |
| v75: str | |
| v76: str | |
| v77: str | |
| v78: str | |
| v79: str | |
| v80: str | |
| v81: str | |
| v82: str | |
| v83: str | |
| v84: str | |
| v85: str | |
| v86: str | |
| v87: str | |
| v88: str | |
| v89: str | |
| v90: str | |
| v91: str | |
| v92: str | |
| v93: str | |
| v94: str | |
| v95: str | |
| v96: str | |
| v97: str | |
| v98: str | |
| v99: str | |
| @dataclass | |
| class DataKlass1000: | |
| v0: str | |
| v1: str | |
| v2: str | |
| v3: str | |
| v4: str | |
| v5: str | |
| v6: str | |
| v7: str | |
| v8: str | |
| v9: str | |
| v10: str | |
| v11: str | |
| v12: str | |
| v13: str | |
| v14: str | |
| v15: str | |
| v16: str | |
| v17: str | |
| v18: str | |
| v19: str | |
| v20: str | |
| v21: str | |
| v22: str | |
| v23: str | |
| v24: str | |
| v25: str | |
| v26: str | |
| v27: str | |
| v28: str | |
| v29: str | |
| v30: str | |
| v31: str | |
| v32: str | |
| v33: str | |
| v34: str | |
| v35: str | |
| v36: str | |
| v37: str | |
| v38: str | |
| v39: str | |
| v40: str | |
| v41: str | |
| v42: str | |
| v43: str | |
| v44: str | |
| v45: str | |
| v46: str | |
| v47: str | |
| v48: str | |
| v49: str | |
| v50: str | |
| v51: str | |
| v52: str | |
| v53: str | |
| v54: str | |
| v55: str | |
| v56: str | |
| v57: str | |
| v58: str | |
| v59: str | |
| v60: str | |
| v61: str | |
| v62: str | |
| v63: str | |
| v64: str | |
| v65: str | |
| v66: str | |
| v67: str | |
| v68: str | |
| v69: str | |
| v70: str | |
| v71: str | |
| v72: str | |
| v73: str | |
| v74: str | |
| v75: str | |
| v76: str | |
| v77: str | |
| v78: str | |
| v79: str | |
| v80: str | |
| v81: str | |
| v82: str | |
| v83: str | |
| v84: str | |
| v85: str | |
| v86: str | |
| v87: str | |
| v88: str | |
| v89: str | |
| v90: str | |
| v91: str | |
| v92: str | |
| v93: str | |
| v94: str | |
| v95: str | |
| v96: str | |
| v97: str | |
| v98: str | |
| v99: str | |
| v100: str | |
| v101: str | |
| v102: str | |
| v103: str | |
| v104: str | |
| v105: str | |
| v106: str | |
| v107: str | |
| v108: str | |
| v109: str | |
| v110: str | |
| v111: str | |
| v112: str | |
| v113: str | |
| v114: str | |
| v115: str | |
| v116: str | |
| v117: str | |
| v118: str | |
| v119: str | |
| v120: str | |
| v121: str | |
| v122: str | |
| v123: str | |
| v124: str | |
| v125: str | |
| v126: str | |
| v127: str | |
| v128: str | |
| v129: str | |
| v130: str | |
| v131: str | |
| v132: str | |
| v133: str | |
| v134: str | |
| v135: str | |
| v136: str | |
| v137: str | |
| v138: str | |
| v139: str | |
| v140: str | |
| v141: str | |
| v142: str | |
| v143: str | |
| v144: str | |
| v145: str | |
| v146: str | |
| v147: str | |
| v148: str | |
| v149: str | |
| v150: str | |
| v151: str | |
| v152: str | |
| v153: str | |
| v154: str | |
| v155: str | |
| v156: str | |
| v157: str | |
| v158: str | |
| v159: str | |
| v160: str | |
| v161: str | |
| v162: str | |
| v163: str | |
| v164: str | |
| v165: str | |
| v166: str | |
| v167: str | |
| v168: str | |
| v169: str | |
| v170: str | |
| v171: str | |
| v172: str | |
| v173: str | |
| v174: str | |
| v175: str | |
| v176: str | |
| v177: str | |
| v178: str | |
| v179: str | |
| v180: str | |
| v181: str | |
| v182: str | |
| v183: str | |
| v184: str | |
| v185: str | |
| v186: str | |
| v187: str | |
| v188: str | |
| v189: str | |
| v190: str | |
| v191: str | |
| v192: str | |
| v193: str | |
| v194: str | |
| v195: str | |
| v196: str | |
| v197: str | |
| v198: str | |
| v199: str | |
| v200: str | |
| v201: str | |
| v202: str | |
| v203: str | |
| v204: str | |
| v205: str | |
| v206: str | |
| v207: str | |
| v208: str | |
| v209: str | |
| v210: str | |
| v211: str | |
| v212: str | |
| v213: str | |
| v214: str | |
| v215: str | |
| v216: str | |
| v217: str | |
| v218: str | |
| v219: str | |
| v220: str | |
| v221: str | |
| v222: str | |
| v223: str | |
| v224: str | |
| v225: str | |
| v226: str | |
| v227: str | |
| v228: str | |
| v229: str | |
| v230: str | |
| v231: str | |
| v232: str | |
| v233: str | |
| v234: str | |
| v235: str | |
| v236: str | |
| v237: str | |
| v238: str | |
| v239: str | |
| v240: str | |
| v241: str | |
| v242: str | |
| v243: str | |
| v244: str | |
| v245: str | |
| v246: str | |
| v247: str | |
| v248: str | |
| v249: str | |
| v250: str | |
| v251: str | |
| v252: str | |
| v253: str | |
| v254: str | |
| v255: str | |
| v256: str | |
| v257: str | |
| v258: str | |
| v259: str | |
| v260: str | |
| v261: str | |
| v262: str | |
| v263: str | |
| v264: str | |
| v265: str | |
| v266: str | |
| v267: str | |
| v268: str | |
| v269: str | |
| v270: str | |
| v271: str | |
| v272: str | |
| v273: str | |
| v274: str | |
| v275: str | |
| v276: str | |
| v277: str | |
| v278: str | |
| v279: str | |
| v280: str | |
| v281: str | |
| v282: str | |
| v283: str | |
| v284: str | |
| v285: str | |
| v286: str | |
| v287: str | |
| v288: str | |
| v289: str | |
| v290: str | |
| v291: str | |
| v292: str | |
| v293: str | |
| v294: str | |
| v295: str | |
| v296: str | |
| v297: str | |
| v298: str | |
| v299: str | |
| v300: str | |
| v301: str | |
| v302: str | |
| v303: str | |
| v304: str | |
| v305: str | |
| v306: str | |
| v307: str | |
| v308: str | |
| v309: str | |
| v310: str | |
| v311: str | |
| v312: str | |
| v313: str | |
| v314: str | |
| v315: str | |
| v316: str | |
| v317: str | |
| v318: str | |
| v319: str | |
| v320: str | |
| v321: str | |
| v322: str | |
| v323: str | |
| v324: str | |
| v325: str | |
| v326: str | |
| v327: str | |
| v328: str | |
| v329: str | |
| v330: str | |
| v331: str | |
| v332: str | |
| v333: str | |
| v334: str | |
| v335: str | |
| v336: str | |
| v337: str | |
| v338: str | |
| v339: str | |
| v340: str | |
| v341: str | |
| v342: str | |
| v343: str | |
| v344: str | |
| v345: str | |
| v346: str | |
| v347: str | |
| v348: str | |
| v349: str | |
| v350: str | |
| v351: str | |
| v352: str | |
| v353: str | |
| v354: str | |
| v355: str | |
| v356: str | |
| v357: str | |
| v358: str | |
| v359: str | |
| v360: str | |
| v361: str | |
| v362: str | |
| v363: str | |
| v364: str | |
| v365: str | |
| v366: str | |
| v367: str | |
| v368: str | |
| v369: str | |
| v370: str | |
| v371: str | |
| v372: str | |
| v373: str | |
| v374: str | |
| v375: str | |
| v376: str | |
| v377: str | |
| v378: str | |
| v379: str | |
| v380: str | |
| v381: str | |
| v382: str | |
| v383: str | |
| v384: str | |
| v385: str | |
| v386: str | |
| v387: str | |
| v388: str | |
| v389: str | |
| v390: str | |
| v391: str | |
| v392: str | |
| v393: str | |
| v394: str | |
| v395: str | |
| v396: str | |
| v397: str | |
| v398: str | |
| v399: str | |
| v400: str | |
| v401: str | |
| v402: str | |
| v403: str | |
| v404: str | |
| v405: str | |
| v406: str | |
| v407: str | |
| v408: str | |
| v409: str | |
| v410: str | |
| v411: str | |
| v412: str | |
| v413: str | |
| v414: str | |
| v415: str | |
| v416: str | |
| v417: str | |
| v418: str | |
| v419: str | |
| v420: str | |
| v421: str | |
| v422: str | |
| v423: str | |
| v424: str | |
| v425: str | |
| v426: str | |
| v427: str | |
| v428: str | |
| v429: str | |
| v430: str | |
| v431: str | |
| v432: str | |
| v433: str | |
| v434: str | |
| v435: str | |
| v436: str | |
| v437: str | |
| v438: str | |
| v439: str | |
| v440: str | |
| v441: str | |
| v442: str | |
| v443: str | |
| v444: str | |
| v445: str | |
| v446: str | |
| v447: str | |
| v448: str | |
| v449: str | |
| v450: str | |
| v451: str | |
| v452: str | |
| v453: str | |
| v454: str | |
| v455: str | |
| v456: str | |
| v457: str | |
| v458: str | |
| v459: str | |
| v460: str | |
| v461: str | |
| v462: str | |
| v463: str | |
| v464: str | |
| v465: str | |
| v466: str | |
| v467: str | |
| v468: str | |
| v469: str | |
| v470: str | |
| v471: str | |
| v472: str | |
| v473: str | |
| v474: str | |
| v475: str | |
| v476: str | |
| v477: str | |
| v478: str | |
| v479: str | |
| v480: str | |
| v481: str | |
| v482: str | |
| v483: str | |
| v484: str | |
| v485: str | |
| v486: str | |
| v487: str | |
| v488: str | |
| v489: str | |
| v490: str | |
| v491: str | |
| v492: str | |
| v493: str | |
| v494: str | |
| v495: str | |
| v496: str | |
| v497: str | |
| v498: str | |
| v499: str | |
| v500: str | |
| v501: str | |
| v502: str | |
| v503: str | |
| v504: str | |
| v505: str | |
| v506: str | |
| v507: str | |
| v508: str | |
| v509: str | |
| v510: str | |
| v511: str | |
| v512: str | |
| v513: str | |
| v514: str | |
| v515: str | |
| v516: str | |
| v517: str | |
| v518: str | |
| v519: str | |
| v520: str | |
| v521: str | |
| v522: str | |
| v523: str | |
| v524: str | |
| v525: str | |
| v526: str | |
| v527: str | |
| v528: str | |
| v529: str | |
| v530: str | |
| v531: str | |
| v532: str | |
| v533: str | |
| v534: str | |
| v535: str | |
| v536: str | |
| v537: str | |
| v538: str | |
| v539: str | |
| v540: str | |
| v541: str | |
| v542: str | |
| v543: str | |
| v544: str | |
| v545: str | |
| v546: str | |
| v547: str | |
| v548: str | |
| v549: str | |
| v550: str | |
| v551: str | |
| v552: str | |
| v553: str | |
| v554: str | |
| v555: str | |
| v556: str | |
| v557: str | |
| v558: str | |
| v559: str | |
| v560: str | |
| v561: str | |
| v562: str | |
| v563: str | |
| v564: str | |
| v565: str | |
| v566: str | |
| v567: str | |
| v568: str | |
| v569: str | |
| v570: str | |
| v571: str | |
| v572: str | |
| v573: str | |
| v574: str | |
| v575: str | |
| v576: str | |
| v577: str | |
| v578: str | |
| v579: str | |
| v580: str | |
| v581: str | |
| v582: str | |
| v583: str | |
| v584: str | |
| v585: str | |
| v586: str | |
| v587: str | |
| v588: str | |
| v589: str | |
| v590: str | |
| v591: str | |
| v592: str | |
| v593: str | |
| v594: str | |
| v595: str | |
| v596: str | |
| v597: str | |
| v598: str | |
| v599: str | |
| v600: str | |
| v601: str | |
| v602: str | |
| v603: str | |
| v604: str | |
| v605: str | |
| v606: str | |
| v607: str | |
| v608: str | |
| v609: str | |
| v610: str | |
| v611: str | |
| v612: str | |
| v613: str | |
| v614: str | |
| v615: str | |
| v616: str | |
| v617: str | |
| v618: str | |
| v619: str | |
| v620: str | |
| v621: str | |
| v622: str | |
| v623: str | |
| v624: str | |
| v625: str | |
| v626: str | |
| v627: str | |
| v628: str | |
| v629: str | |
| v630: str | |
| v631: str | |
| v632: str | |
| v633: str | |
| v634: str | |
| v635: str | |
| v636: str | |
| v637: str | |
| v638: str | |
| v639: str | |
| v640: str | |
| v641: str | |
| v642: str | |
| v643: str | |
| v644: str | |
| v645: str | |
| v646: str | |
| v647: str | |
| v648: str | |
| v649: str | |
| v650: str | |
| v651: str | |
| v652: str | |
| v653: str | |
| v654: str | |
| v655: str | |
| v656: str | |
| v657: str | |
| v658: str | |
| v659: str | |
| v660: str | |
| v661: str | |
| v662: str | |
| v663: str | |
| v664: str | |
| v665: str | |
| v666: str | |
| v667: str | |
| v668: str | |
| v669: str | |
| v670: str | |
| v671: str | |
| v672: str | |
| v673: str | |
| v674: str | |
| v675: str | |
| v676: str | |
| v677: str | |
| v678: str | |
| v679: str | |
| v680: str | |
| v681: str | |
| v682: str | |
| v683: str | |
| v684: str | |
| v685: str | |
| v686: str | |
| v687: str | |
| v688: str | |
| v689: str | |
| v690: str | |
| v691: str | |
| v692: str | |
| v693: str | |
| v694: str | |
| v695: str | |
| v696: str | |
| v697: str | |
| v698: str | |
| v699: str | |
| v700: str | |
| v701: str | |
| v702: str | |
| v703: str | |
| v704: str | |
| v705: str | |
| v706: str | |
| v707: str | |
| v708: str | |
| v709: str | |
| v710: str | |
| v711: str | |
| v712: str | |
| v713: str | |
| v714: str | |
| v715: str | |
| v716: str | |
| v717: str | |
| v718: str | |
| v719: str | |
| v720: str | |
| v721: str | |
| v722: str | |
| v723: str | |
| v724: str | |
| v725: str | |
| v726: str | |
| v727: str | |
| v728: str | |
| v729: str | |
| v730: str | |
| v731: str | |
| v732: str | |
| v733: str | |
| v734: str | |
| v735: str | |
| v736: str | |
| v737: str | |
| v738: str | |
| v739: str | |
| v740: str | |
| v741: str | |
| v742: str | |
| v743: str | |
| v744: str | |
| v745: str | |
| v746: str | |
| v747: str | |
| v748: str | |
| v749: str | |
| v750: str | |
| v751: str | |
| v752: str | |
| v753: str | |
| v754: str | |
| v755: str | |
| v756: str | |
| v757: str | |
| v758: str | |
| v759: str | |
| v760: str | |
| v761: str | |
| v762: str | |
| v763: str | |
| v764: str | |
| v765: str | |
| v766: str | |
| v767: str | |
| v768: str | |
| v769: str | |
| v770: str | |
| v771: str | |
| v772: str | |
| v773: str | |
| v774: str | |
| v775: str | |
| v776: str | |
| v777: str | |
| v778: str | |
| v779: str | |
| v780: str | |
| v781: str | |
| v782: str | |
| v783: str | |
| v784: str | |
| v785: str | |
| v786: str | |
| v787: str | |
| v788: str | |
| v789: str | |
| v790: str | |
| v791: str | |
| v792: str | |
| v793: str | |
| v794: str | |
| v795: str | |
| v796: str | |
| v797: str | |
| v798: str | |
| v799: str | |
| v800: str | |
| v801: str | |
| v802: str | |
| v803: str | |
| v804: str | |
| v805: str | |
| v806: str | |
| v807: str | |
| v808: str | |
| v809: str | |
| v810: str | |
| v811: str | |
| v812: str | |
| v813: str | |
| v814: str | |
| v815: str | |
| v816: str | |
| v817: str | |
| v818: str | |
| v819: str | |
| v820: str | |
| v821: str | |
| v822: str | |
| v823: str | |
| v824: str | |
| v825: str | |
| v826: str | |
| v827: str | |
| v828: str | |
| v829: str | |
| v830: str | |
| v831: str | |
| v832: str | |
| v833: str | |
| v834: str | |
| v835: str | |
| v836: str | |
| v837: str | |
| v838: str | |
| v839: str | |
| v840: str | |
| v841: str | |
| v842: str | |
| v843: str | |
| v844: str | |
| v845: str | |
| v846: str | |
| v847: str | |
| v848: str | |
| v849: str | |
| v850: str | |
| v851: str | |
| v852: str | |
| v853: str | |
| v854: str | |
| v855: str | |
| v856: str | |
| v857: str | |
| v858: str | |
| v859: str | |
| v860: str | |
| v861: str | |
| v862: str | |
| v863: str | |
| v864: str | |
| v865: str | |
| v866: str | |
| v867: str | |
| v868: str | |
| v869: str | |
| v870: str | |
| v871: str | |
| v872: str | |
| v873: str | |
| v874: str | |
| v875: str | |
| v876: str | |
| v877: str | |
| v878: str | |
| v879: str | |
| v880: str | |
| v881: str | |
| v882: str | |
| v883: str | |
| v884: str | |
| v885: str | |
| v886: str | |
| v887: str | |
| v888: str | |
| v889: str | |
| v890: str | |
| v891: str | |
| v892: str | |
| v893: str | |
| v894: str | |
| v895: str | |
| v896: str | |
| v897: str | |
| v898: str | |
| v899: str | |
| v900: str | |
| v901: str | |
| v902: str | |
| v903: str | |
| v904: str | |
| v905: str | |
| v906: str | |
| v907: str | |
| v908: str | |
| v909: str | |
| v910: str | |
| v911: str | |
| v912: str | |
| v913: str | |
| v914: str | |
| v915: str | |
| v916: str | |
| v917: str | |
| v918: str | |
| v919: str | |
| v920: str | |
| v921: str | |
| v922: str | |
| v923: str | |
| v924: str | |
| v925: str | |
| v926: str | |
| v927: str | |
| v928: str | |
| v929: str | |
| v930: str | |
| v931: str | |
| v932: str | |
| v933: str | |
| v934: str | |
| v935: str | |
| v936: str | |
| v937: str | |
| v938: str | |
| v939: str | |
| v940: str | |
| v941: str | |
| v942: str | |
| v943: str | |
| v944: str | |
| v945: str | |
| v946: str | |
| v947: str | |
| v948: str | |
| v949: str | |
| v950: str | |
| v951: str | |
| v952: str | |
| v953: str | |
| v954: str | |
| v955: str | |
| v956: str | |
| v957: str | |
| v958: str | |
| v959: str | |
| v960: str | |
| v961: str | |
| v962: str | |
| v963: str | |
| v964: str | |
| v965: str | |
| v966: str | |
| v967: str | |
| v968: str | |
| v969: str | |
| v970: str | |
| v971: str | |
| v972: str | |
| v973: str | |
| v974: str | |
| v975: str | |
| v976: str | |
| v977: str | |
| v978: str | |
| v979: str | |
| v980: str | |
| v981: str | |
| v982: str | |
| v983: str | |
| v984: str | |
| v985: str | |
| v986: str | |
| v987: str | |
| v988: str | |
| v989: str | |
| v990: str | |
| v991: str | |
| v992: str | |
| v993: str | |
| v994: str | |
| v995: str | |
| v996: str | |
| v997: str | |
| v998: str | |
| v999: str | |
| DATACLASS = { | |
| "10": DataKlass10, | |
| "100": DataKlass100, | |
| "1000": DataKlass1000 | |
| } | |
| print("") | |
| for s in (10, 100, 1000): | |
| print("Number of elements: ", s) | |
| print("-" * (len(str(s)) + len("Number of elements: "))) | |
| print() | |
| info = {f"v{x}": x for x in range(s)} | |
| size_dict = dict(**info) | |
| _D = namedtuple("_D", list(info.keys())) | |
| size_namedtuple = _D(**info) | |
| _K = Klass(**info) | |
| _K.__slots__ = list(info.keys()) | |
| Klass2 = Klass | |
| Klass2.__slots__ = list(info.keys()) | |
| _K2 = Klass2(**info) | |
| dataclass = DATACLASS[str(s)](**info) | |
| print("Dict: ", sys.getsizeof(size_dict), "bytes #", getsize(size_dict), " bytes") | |
| print("Namedtuple: ", sys.getsizeof(size_namedtuple), "bytes #", | |
| getsize(size_namedtuple), " bytes") | |
| print("Class: ", sys.getsizeof(_K), "bytes #", getsize(_K), " bytes") | |
| print("Class Slots: ", sys.getsizeof(_K2), "bytes #", getsize(_K2), " bytes") | |
| print("Dataclass: ", sys.getsizeof(dataclass), "bytes #", getsize(dataclass), " bytes") | |
| print("") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment