【问题标题】:How to understand whether it is going to exceed the Java Heap Size or not?如何理解它是否会超过 Java Heap Size?
【发布时间】:2012-03-27 06:02:33
【问题描述】:

我实现了一个程序,用于计算股票价值,比较给定时间价值中的价值等。 我有一个包含所有日期和双精度值的 csv 文件。在我的每个日期的程序中,我打开一个文件,解析和搜索给定日期的值。我可能会多次检查日期。这就是为什么我想在 HashMap 中使用这些值,如果我没有给定日期的值作为键,我会打开 csv 文件并搜索它。 但在实现该程序之前,我想检查如果我将所有值存储在哈希图中,它是否适合 8MB 的 java 堆。 我的 csv 文件有 1200 行日期和相应的双精度值。 在实现代码之前有什么方法可以理解它吗? 或者你有什么更好的想法来制作更高效的程序吗?

谢谢。

【问题讨论】:

  • 老实说,我很难相信 JVM 会以仅 8MB 的堆开始...

标签: java heap-memory processing-efficiency


【解决方案1】:

将这些数据加载到哈希图中比不断地从文件中读取效率要高几个数量级。对于解析和加载给定的 csv 文件将占用多少堆空间,没有一个硬性规定。这取决于系统架构、使用的字符串编码、数据类型等。

最简单和最好的方法是运行一个简单的 JVM 分析器,并检查在将特定大小的文件加载到 hashmap 之前和之后堆使用量的差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 2013-08-17
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多