我将一些JSON文件存储在磁盘上(每个文件非常小,约为4kB),并在需要时将它们加载到var中。 我可能有数千个这样的文件,如果它们在内存中占用的空间与它们在磁盘上占用的空间相同,我宁愿在应用程序启动时将它们全部加载到内存中。
如何计算文件从中创建对象时占用的内存量(RAM)?
编辑:我知道如何将JSON文件保存到磁盘。那不是我的问题。我试图了解当我将其加载到var中时,JSON文件将占用多少内存(RAM)。 如果我知道磁盘上JSON文件的大小,当我从node.js或web浏览器中的文件创建javascript对象时,如何计算它将占用多少内存(RAM)?
文件保存为"纯文本文件"。 例如:
{"foo": {
"bar": 1,
"foo": {
"bar": [
"foo",
"bar"
],
"foo":[
"bar",
"foo"
]
}
}
}
答案 0 :(得分:2)
对象占用的RAM量与文件大小不同。文件的大小只是其中的字节数,但对象占用的RAM量取决于存储在其中的值。例如,在像这样的对象中:
{
"bar": 1
}
保存到文件时,1
只是一个字节。但是,如果您要将此对象加载到var
,1
将占用8个字节,因为它是number
。
请看一下这个答案,了解每种数据类型的大小:https://stackoverflow.com/a/11900218/1611665
另外,你应该考虑密钥的大小(但这非常简单,如果你的密钥是字符串,它是length
属性的两倍)。
答案 1 :(得分:1)
我会尝试在您使用的JavaScript执行环境中测量内存消耗。 例如,对于Chrome浏览器,您可以使用此memory profiling guide。
您提到的数据文件表明您的代码在服务器上运行,可能是node.js. 我想看看this。