Serhiy Storchaka added the comment: >>> import pickle, pickletools, datetime >>> len(pickle.dumps([datetime.datetime.utcfromtimestamp(i) for i in >>> range(10000)], 3)) / 10000 30.9283 >>> len(pickle.dumps([datetime.datetime.fromtimestamp(i, datetime.timezone.utc) >>> for i in range(10000)], 3)) / 10000 32.936 >>> len(pickle.dumps([datetime.datetime.utcfromtimestamp(i) for i in >>> range(10000)], 4)) / 10000 19.0074 >>> len(pickle.dumps([datetime.datetime.fromtimestamp(i, datetime.timezone.utc) >>> for i in range(10000)], 4)) / 10000 21.0144
In best case the UTC timezone costs only 2 bytes per datetime instance (BINGET + 1-byte index). In worst case it can cost 5 bytes (LONG_BINGET + 4-bytes index). Saving few bytes for single timezone instance has significant effect only for small pickled data. But in this case it is more advantageous to save a datetime just as a timestamp. I suggest to close this issue. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9051> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com