我已经以这样的方式编写了json结构:文件(在花了一个月的测量值之后)存储在磁盘上时仍然只有大约100 MB。但是现在文件大约是20mb,但我发现我的脚本需要的内存大约是200/300 mb。显然,脚本和编译器需要内存但是将json txt加载到内存中是正确的,因为实际的json将内存大约增加到txt文件大小的8倍(使用process.memoryUsage()
测量)?我需要数据不断保留在内存中,因为其他功能需要用户请求数据。我只将它作为备份保存到文件中。但是按照这个速度,我的服务器将无法处理脚本。
任何人都可以确认确实如此吗?如果是这样,您会如何建议我可以减少内存负载?
答案 0 :(得分:0)
Json文件大小表示是它当前使用的实际字节数。
RAM会有所不同。取决于使用的语言和变量类型。 As per documentation,语言将在分配RAM时使用值类型大小。
{" aNumber的":1}
在文件中使用1
个字节,但在内存中分配时使用8
个字节(在Java中)
为简化起见,您可以估计RAM使用量将是文件大小乘以最大类型。所以,是的,文件大小乘以8是一个很好的估计。
And if so, how would you suggest I could reduce memory load?
我们可以使用有关您的系统或需求的更多信息。但粗略地说,信息隔离越多越好。
我的系统有3200个传感器,预计总共7000个。对于我的系统,我有每个"文件输出"每个注册表有100个,每个注册表最多有10个字段。这通常意味着一个~30kb的文件,每个文件使用高达300kb的RAM,然后我可以使用分布式服务读取一个,处理该文件,并根据需要重新输出。
如果可以的话,那么每次使用数据量较少的多个文件,一旦处理完一个,就转移到下一个