Java 8 从Java 6升级到Java 8后应用程序的高虚拟内存使用率

Java 8 从Java 6升级到Java 8后应用程序的高虚拟内存使用率,java-8,virtual-memory,java-6,Java 8,Virtual Memory,Java 6,我们有一个Java应用程序,它从外部系统获取数据并创建数据的内存映射。 早些时候,应用程序是使用Java6构建的。作为法规遵从性的一部分,我们需要升级到Java8。 我们刚刚使用Java 8编译器构建了应用程序,并开始测试它。 我们观察到应用程序对虚拟内存的消耗有所增加 使用Java6时,它的功耗约为5GB,而使用Java8时,它的功耗约为38GB 我正在寻找关于如何找到问题的建议。 应用程序的驻留内存与以前一样为5 GB。我认为您应该将问题重新表述为符合stackoverflow,并在询问潜在

我们有一个Java应用程序,它从外部系统获取数据并创建数据的内存映射。
早些时候,应用程序是使用Java6构建的。作为法规遵从性的一部分,我们需要升级到Java8。 我们刚刚使用Java 8编译器构建了应用程序,并开始测试它。
我们观察到应用程序对虚拟内存的消耗有所增加

使用Java6时,它的功耗约为5GB,而使用Java8时,它的功耗约为38GB

我正在寻找关于如何找到问题的建议。

应用程序的驻留内存与以前一样为5 GB。

我认为您应该将问题重新表述为符合stackoverflow,并在询问潜在问题之前,首先说明您尝试了什么。也没有提到很多程序的细节,比如它存储的信息是否有可能增加等等?这些类型的问题通常作为面试类型的问题提出。您可能希望首先解释代码使用的数据结构和算法,以确定java处理该数据结构的方式是否发生了一些变化,或者gc的一些不良做法。完成后,找出哪些变量是固定的,哪些变量发生了变化,然后潜在地重新提问这不是面试问题。“我正在寻找关于如何找到问题的建议。”这就是我在问题中提到的。正如我在问题中提到的,代码中没有任何更改。我们所做的只是针对Java8编译并运行它。如果数据结构/成员变量等有任何影响,为什么Java6没有影响?我正在寻找关于在这些情况下可以检查什么的建议。这是我的观点,stackoverflow无助于找到建议,因为没有硬参数是浪费时间的。我确实就如何开始提出了建议。