![](/img/trans.png)
[英]Why would memory overhead of dictionary of data be double that of the same data on disk?
[英]why would data have different footprints for disk versus memory?
“我們在S3上有12個CSV文件的2015 Yellow Cab NYC出租車數據...該數據在磁盤上約為20GB,在RAM中約為60GB。”
我在嘗試dask (一種用於處理內存不足數據集的python框架)時遇到了這一發現。
有人可以向我解釋為什么會有3倍的差異嗎? id想像它與python對象有關,但不是100%肯定。
謝謝!
您正在從磁盤上的CSV讀取到內存中的結構化數據幀對象。 這兩件事根本不相似。 磁盤上的CSV數據是單個字符串。 內存中的數據是一個復雜的數據結構,具有多種數據類型,內部指針等。
CSV本身不占用任何RAM。 有一個復雜的數據結構正在占用RAM,並且它是使用磁盤上CSV來源的數據填充的。 這根本不是一回事。
為了說明差異,您可以嘗試將CSV讀取到實際的單個字符串變量中,並查看消耗了多少內存。 在這種情況下,它實際上是內存中的單個CSV字符串:
with open('data.csv', 'r') as csvFile:
data=csvFile.read()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.