0

我正在尝试构建一个开源项目以提供对机器学习数据集的轻松访问,该数据集以易于访问的方式捆绑数据。基本上,我有代码,它将原始数据转换为HSQLDB file数据库,生成*.data*.properties*.script文件。然后我将这 3 个文件放入src/main/resources我的Maven项目中并构建一个 jar。依赖于此 jar 的应用程序可以将HSQLDB数据库作为res数据库进行访问。

从技术上讲,我可以毫无问题地完成所有工作。但是,访问数据非常慢。奇怪的是,如果我有一个数据集项目和一个依赖于数据集的项目,它们都在 Eclipse 中打开并从那里运行,那么它会像预期的那样快。这意味着问题与HSQLDB被震动的文件有关。另一个线索是,数据库越大,访问数据所需的时间(看似)成倍增长。

我试过碰撞作为 JVM args 给出的内存和 perm 空间。我也尝试HSQLDB*.properties文件中设置各种标志。

有任何想法吗??

<compress>false</compress>编辑:我还使用maven-jar-plugin 定义中的元素关闭了 jar 压缩。

4

1 回答 1

0

HSQLDB 我尝试了很多事情,包括按照论坛的建议设置缓存大小和缓存行。我最终通过Boris the Spider上面建议的解决方法解决了这个问题,即:

  1. 在 .创建一个临时目录java.io.temp
  2. 将数据库文件移出 jar 并放入临时目录。
  3. 使用file HSQLDB使用这些文件的数据库。
  4. 之后通过删除临时目录进行清理。

像魅力一样工作。有点hack,但至少它有效。

于 2013-09-17T14:17:35.140 回答