我实施了一个关于计算股票价值的程序,比较给定时间内的价值等等。 我有一个csv文件,其中包含所有日期和双精度值。在我的每个日期的程序中,我打开一个文件,解析并搜索给定日期的值。我可以多次检查日期。这就是为什么我想在HashMap中使用这些值,如果我没有将给定日期的值作为Key,我会打开csv文件并进行搜索。 但是在实现该程序之前,我想检查一下,如果我将所有值存储在hashmap中,它是否适合java的堆,即8MB。 我的csv文件有1200行日期和相应的double值。 在实现代码之前有没有办法理解它? 或者你是否建议任何更好的想法来制定更有效的计划?
感谢。
答案 0 :(得分:1)
将此数据加载到散列映射中的效率比不断读取文件的效率高几个数量级。通过解析和加载给定的csv文件,确定将占用多少堆空间没有一条硬性规则。它取决于系统架构,使用的字符串编码,数据类型等。
最简单和最好的方法是运行一个简单的JVM分析器,并在将特定大小的文件加载到散列映射之前和之后检查堆使用的差异。