我在内存模式下使用 H2 DB 来处理一些数据。我的 java 应用程序需要在每次运行中删除和重新创建或截断或删除 H2 DB 中的所有对象时保持 JVM 开启。因此,我需要在 DB URL 中使用选项“DB_CLOSE_DELAY=-1”。
为了在迭代后清理内存,我尝试使用“DROP ALL OBJECTS”、“DROP ALL OBJECTS DELETE FILES”并逐个截断每个表。所有这些都实现了我想要的,并没有删除它当前占用的内存。我的数据库大小从大约 300MB 到 2GB 不等。因此,在一次迭代之后,我的 RAM 大约占用了 1GB,并且没有找到任何解决方案来解决这个问题的原因或解决方案。
有点类似于这个Clear the in memory database after each testcase。但是没有 dbUnit 并且也需要清除 RAM。
是否可以在不停止 JVM 的情况下执行此操作。
谢谢。