我认为是
直到最近,我才认为当我在TeamCity的一个代理上开始构建时,代理会生成一个新进程来启动maven,而maven也会生成一个新进程来启动Jetty。即,所有这三个参与者都在三个不同的Java进程中运行。
我认为现在是
只有一个进程(TeamCity代理),并且所有内容(Maven,Jetty)都在此进程中运行。
为什么我认为是这种情况
最近我们项目中的一个集成测试导致了permgen空间中的OutOfMemory问题。我试图为Jetty和运行集成测试的部分增加内存和permgen空间,最多可达2GB。换句话说,我将以下行添加到pom.xml
(分别和一起):
<configuration>
<argLine>-Xmx512M -XX:MaxPermSize=256M</argLine>
</configuration>
类似于Jetty,只有jvmArgs
。但是,这并没有解决问题(即使使用2G内存设置)。
将此配置(即-Xmx512M -XX:MaxPermSize=256M
)添加到Teamcity确实解决了这个问题。
因此,现在我认为提到的实体在同一个进程中运行,并且(至少在内存方面)只有外部进程(即TeamCity)的配置很重要。
问题