2016-09-24 86 views
1

我在我的Java应用程序使用内存数据库像HSQL和FONGO的JUnit测试Java应用程序在内存数据库的时间太长建立

我执行这些构建的Linux机器上。

由于这些内存数据库中的构建时间太长,无法构建。

应该在2分钟内完成的建设需要30分钟。

任何指针将有很大的帮助

+1

你检查你的存储过程中使用的JConsole或jvisualvm您的测试如何演变?也许GC活动太高,所以你需要分配更多的内存到你的JVM? –

+0

也许你应该重写你的测试以更多地使用mock。只有存储库类需要访问数据库。如果您反复重新创建bean,DI引擎会减慢测试速度。也许你的单元测试真的是集成测试。审查他们所有的事情,以确保他们都给你真正的价值。 – duffymo

+0

@NicolasFilotto ..谢谢你的回复。我将JAVA_OPTS设置为-XX:MaxPermSize = 1200M -Xms2400M -Xmx4800M – Patan

回答

-1

我能够与this解决问题。

随机数生成时间过长。我做了以下更改。

在Sun的JVM中用于随机数生成的库依赖于UNIX平台默认的/ dev/random。这可能会阻止WebLogic SIP Server进程,因为在某些操作系统上,/ dev/random会在返回结果之前等待主机上生成一定量的“噪音”。尽管/ dev/random更安全,但如果默认JVM配置延迟WebLogic SIP Server启动,BEA建议使用/ dev/urandom。

要确定您的操作系统是否存在这种行为,尽量在shell提示显示文件的部分内容:

head -n 1 /dev/random 

如果命令立即返回,您可以使用/ dev /随机设置为默认发电机SUN的JVM。如果该命令没有立即返回,使用以下步骤来配置JVM使用/ dev/urandom的:

1. Open the $JAVA_HOME/jre/lib/security/java.security file in a text 
    editor. 
2. Change the line: 
    securerandom.source=file:/dev/random 
      to 
    securerandom.source=file:/dev/urandom 
3. Save your change and exit the text editor. 
+0

请提供答案中的信息。只链接答案不是答案。 –

+0

这甚至没有理由作为答案。为什么你的构建会被随机数生成阻塞? – duskwuff

+0

@duskwuff。在使用随机数生成器的内存数据库中使用Fongo。因此,建筑物被绞死。 – Patan

相关问题