在网上搜索了一段时间后,我决定向您寻求帮助以解决我的问题。
我的程序应该分析非常大的日志文件。它们大约 100mb 到 2gb。我想使用像 FileChannel 这样的 NIO 类来读取文件。
我不想将文件保存在内存中,但我想立即处理这些行。该代码有效。
现在我的问题:我用 Eclipse MAT 插件分析了内存使用情况,它说保存了大约 18mb 的数据(适合)。但是 Windows 中的 TaskManager 说 JVM 使用了大约 180mb。
你能告诉我这是为什么吗?
我不想保存使用 FileChannel 读取的数据,我只想处理它。之后我将关闭频道 - 我以为所有数据都会被删除?
我希望你们能帮助我了解 MAT 中显示的已用空间和 TaskManager 中显示的已用空间之间的区别。