我试图建立一个开源project提供易于访问的机器学习数据集,其捆绑在一个易于访问的方式对数据极为缓慢。基本上,我有代码,它的原始数据转换成HSQLDB
file
DB,产生*.data
,*.properties
,和*.script
文件。然后我拿这3个文件,把它们放在我的Maven
项目的src/main/resources
中,然后构建一个jar文件。取决于此jar的应用程序可以访问HSQLDB
数据库作为数据库。访问HSQLDB“资源”捆绑数据库中的jar资源是
从技术上讲,我没有任何问题可以完成所有工作。但是,访问数据非常缓慢。奇怪的是,如果我有数据集项目和一个项目取决于数据集都在Eclipse中打开并从那里运行,它就像预期的那样快。这意味着问题与HSQLDB
文件被破坏有关。另一个线索是,数据库越大,访问数据所需的时间(看似)呈指数级地延长。
我试着给出JVM ARGS内存和烫发空间的碰撞。我也尝试在*.properties
文件中设置各种HSQLDB
标志。
任何想法??
编辑:我也有罐子压缩断开利用在行家-JAR-插件定义的<compress>false</compress>
元件。
罐子被压缩。我认为缓慢是由于通过'ClassLoader'从Jar内部访问文件的开销。许多库(包括[Struts2](http://struts.apache.org/release/2.1.x/docs/performance-tuning.html))建议将资源复制到文件系统位置。也许把你的资源移动到'java.io.temp'? –
我忘记提及我在'maven-jar-plugin'定义中使用' false '元素关闭了jar压缩。压缩与否是没有区别的。不过,你的想法值得尝试。谢谢。 –
herrtim