【问题标题】:Problems loading 5M instances with Weka API使用 Weka API 加载 5M 实例时出现问题
【发布时间】:2014-07-15 23:42:59
【问题描述】:

我有一个大约有 500 万行的数据库。我想使用 Weka api 将它们作为 Eclipse 中的 Java 程序的实例加载,以便应用数据挖掘技术。但是,如果我尝试加载超过 250 万个,即使我在运行配置中使用 -Xmx2048M 增加了 Eclipse 的堆内存,也会出现堆溢出。我的电脑有 4GB 内存,如果我使用更多内存就会卡住。无论如何,加载 250 万个需要太多时间。

我正在考虑以分数的形式加载它们,但我认为这不是最好的主意。

提前致谢。

【问题讨论】:

    标签: java eclipse api heap-memory weka


    【解决方案1】:

    我不知道 Weka API,但如果您需要将大量数据从关系数据库加载到内存中,最好使用cursor。如果你使用 JDBC,你应该使用Scrollable Reslut Set

    【讨论】:

    • 我一直在寻找实现光标和可滚动结果集的选项。我将尝试使用可滚动结果集,因为我使用的是 JDBC。无论如何,它使实例变得更加困难。我将不得不一一获取行并将它们动态转换为实例。
    • 好的。我已经实现了一个可滚动的结果集,它能够对数据库进行查询。但是因为我需要转换 Weka 实例中的每一行,所以在转换整个结果集之前我会得到 OutOfMemoryError。知道了这一点,我们似乎不得不改变数据挖掘程序的设计,以便进行更小的查询。
    【解决方案2】:

    你可以做一件事:
    转到程序文件 '\Program Files (x86)\Weka-3-6' 然后 RunWeka.ini。用记事本打开,把文件'maxheap = 512m'中间那行改成'maxheap = 2000m'

    【讨论】:

    • 你好。感谢您的回答。我在任何地方都找不到那个文件。虽然,我不认为问题可以通过提供更多内存来解决,因为就像我说的那样,我给执行提供了我可以使用参数的所有内存,但仍然会溢出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2020-08-03
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多