Gatling: Parsing log file - OutOfMemoryError: Java heap space

Gatling: Parsing log file - OutOfMemoryError: Java heap space

我使用指定的 -Xmx4G 选项启动 sbt:

java -Xms2G -Xmx4G -jar "C:\Program Files (x86)\sbt\bin\sbt-launch.jar"

但是在测试结束时 运行,加特林失败 OutOfMemoryError: Java heap space

Parsing log file(s)...
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid17300.hprof ...Only 1223s
Dumping heap to java_pid17300.hprof ...Heap dump file created [1320803380 bytes in 4.554 secs]
[error] Uncaught exception when running test.FeLoadTest: java.lang.OutOfMemoryError: Java heap space

从报错信息可以看出堆只有1320803380 bytes ~> 1.2G。但是由于我已经将 Xmx 设置为 4G,所以我不明白为什么会出现这种 OutOfMemoryError - 分配的内存应该足够了。感谢您在解析测试日志文件时帮助克服此错误。

启动sbt和设置参数的正确方法是使用脚本。

请尝试:

sbt -J-Xmx4G test 

终于找到了答案 - 请参阅

解决方案是为 gatling-plugin 增加内存,而不是为 sbt。在 build.sbt 文件中需要添加 javaOptions:

# this is build.sbt file

lazy val root = Project("testing-gatling", file("."))
  .enablePlugins(GatlingPlugin)
  .settings(...)
  .settings(javaOptions in Gatling := overrideDefaultJavaOptions("-Xms1024m", "-Xmx4096m"))

现在对我有用了。