我正在为我的大学重构一小部分开源大型配置管理系统。
我们正在使用一些开源工具进行机器学习,比如 Weka,而我被分配重构的方面是处理数据挖掘和构建规则。
我们一直使用的利物浦和日本的开源文件运行良好,但是当我们在大型项目中使用该程序时会出现一些内存使用问题。
我已经隔离了主要的内存消耗并得出结论,我需要找出不同的数据结构来存储和操作数据。就目前而言,该程序正在使用最终变成非常大的整数、对象、字符串等多维数组。
在我们推导出行为规则之后,有几种方法可以简单地重新配置关联的设置。在许多情况下,我们只是添加或减去单个元素,或者只是将多维数组展平。
一般来说,我主要使用 C/C++ 进行编程,所以我不是 Java 中可用数据结构的专家。我希望用一个动态结构来替换静态数组,该结构可以轻松调整大小,而无需创建第二个多维数组。
现在发生的情况是,每次从多维数组中添加和删除规则、对象或其他杂项数据时,我们都必须创建一个全新的结构。然后我们立即复制到新数组中。
我希望能够简单地使用相同的多维数组并简单地添加新的行和列。随后,我希望能够通过简单地保存临时值并覆盖以前的值、左移、右移等来操作结构中的数据。
谁能想到 Java 中任何符合要求的数据结构?
在相关的说明中,我研究了显式垃圾收集,但发现我只能通过调用 System.Gc() 或通过调整来操纵 JVM 的垃圾收集行为来真正建议 JVM 收集。有没有更好或更有效的方法?
问候, 埃德姆