我有四核处理器。当我在我的项目中运行'mvn test‘时,CPU的负载几乎是100%:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20641 user 20 0 3338212 339232 5076 S 397.7 9.1 2:16.19 java和我的单元测试,因为超时。当我使用eclipse plugin for JUnit时,测试运行得更快,并且不会100%加载CPU。我的配置如下...
Maven 3.1.0
JUnit 4.10
Oracle JDK 1.7.0_40有没有办法解决这个问题?也许我应该使用maven进行一些配置,或者使用maven-surefire-plugin进行特定的配置?
发布于 2013-12-18 16:16:44
您应该使用探查器连接到该虚拟机,并分析CPU时间花在哪里。为了快速获得结果,您可以使用Java Visual VM profiling。要进行更详细的分析,请使用专业的分析器。
发布于 2013-12-18 16:40:45
我也推荐VisualVM。还有另一个有用的工具,叫做jvmtop,用于命令行。
您还应该确保您不会产生超过可用核心的线程,因为交换将大量使用CPU。还要注意你的线程等待的方式,因为当线程处于紧循环中时,会发生如此高的CPU负载,例如while(!foo) {} ...等
发布于 2016-04-05 12:39:29
设置MAVEN_OPTS环境变量可以确保有足够的内存可用于运行Maven任务,并减少CPU使用率。
在Mac上,您可以编辑.bash_profile文件并添加以下内容:
export MAVEN_OPTS="-Xms1024m -Xmx4096m -XX:PermSize=1024m"重新启动终端会话或运行源.bash_profile以激活环境变量。在Linux上,您可以编辑.bashrc文件并添加以下内容:
export MAVEN_OPTS="-Xms1024m -Xmx4096m -XX:PermSize=1024m"重新启动终端会话或运行源.bashrc以激活环境变量。在Windows上,在用户级别设置环境变量
MAVEN_OPTS="-Xms1024m -Xmx4096m -XX:PermSize=1024m"您的MAVEN_OPTS环境变量现在已设置好。如果需要,可以随意增加指定值,例如,如果在运行项目时出现“内存不足”错误。
https://stackoverflow.com/questions/20652760
复制相似问题