我知道哈希映射是存储密钥及其值的好方法。假设我想存储数百万字的数量,或者具体来说我有一个512 GB的文件,我的hashmap在最坏的情况下可能是512 GB(String,Integer)。
如果我有8GB的RAM,我可以将所有的hashmap存储在我的计算机上吗?假设我有1 TB的二级存储空间?
任何人都可以解释原因吗?
答案 0 :(得分:2)
假设我有一个512 GB的文件,我的hashmap可能更糟糕 是512 GB(字符串,整数)。
您无法以这种方式确定HEAP占用的内存大小
文件编码很重要,Java对象也有对已用内存有影响的特性:类中的字段,String
实例也可能被缓存等等......
无论如何,在内存中加载512 GB的文件通常是一个坏主意。 以及在地图中存储数百GB的对象。
数据库旨在实现这一目标 要提高访问性能,您仍然可以使用缓存最常访问数据结果的应用程序缓存。