Floats occupy 16 bytes apiece, and dict - 1500 entries about 100k:
>> sys.getsizeof(1.0)
16
>>> d = dict.fromkeys((float(i) for i in range(1500)), 2.0)
>>> sys.getsizeof(d)
98444
so 22 500 dictons themselves will take 2 GB, and 68 million will float another GB. Not sure how you calculate 68 million times 16, equal to only 100M - you could reset zero somewhere.
, 1500 ( , , , , getsizeof dicts) , dict , . :.
>>> sys.getsizeof(Sic)
452
>>> sys.getsizeof(Sic())
32
>>> sys.getsizeof(Sic().__dict__)
524
452 , (524 + 32) * 1550= 862K , , , dicts floats.