我开发了一个Eclipe RCP工具,它使用SQLite来存储大量的元组。现在,我希望看到使用RAM的不同,而使用内存中的SQLite数据库与基于文件的数据库相反。因此,我使用JVisualVM并使用Trace工具跟踪使用的Java堆空间。在相同条件下,我使用内存版本运行一次工具,使用基于文件的版本运行一次。
为了模拟基准测试,这些表总共包含超过3000万个元组,每个元组平均有15个元素。
我的期望是,内存版本比基于文件的版本使用更多的Java堆空间。但痕迹看起来几乎相同,没有明显的差异。两个Java堆空间都具有相同的最大值,并且它们从未达到此最大值。
因此,我的问题是,SQLite是否将Java堆空间用于内存数据库,还是在内存的另一部分中,而JVisualVM无法跟踪它?
不幸的是,我在互联网上找不到任何相关信息。只是它在内存中,但不在内存中。
谢谢!
答案 0 :(得分:3)
SQLite是一个本机库,不使用Java堆空间;它使用本机堆。