[SCALA] 어떻게 SBT에서 "실행"조치를 사용하여 응용 프로그램을 실행하는 JVM 최대 힙 크기 "-Xmx"를 지정?
SCALA어떻게 SBT에서 "실행"조치를 사용하여 응용 프로그램을 실행하는 JVM 최대 힙 크기 "-Xmx"를 지정?
내 응용 프로그램은 큰 데이터 배열 처리를 수행하고 JVM은 기본적으로 제공보다 더 많은 메모리를 필요로한다. 나는 자바가 "-Xmx"옵션에 의해 지정된 압니다. 어떻게 SBT는 "실행"조치를 사용하여 응용 프로그램을 실행하는 데 특히 "-Xmx"값을 사용하도록 설정합니까?
해결법
-
==============================
1.이 시도:
이 시도:
class ForkRun(info: ProjectInfo) extends DefaultProject(info) { override def fork = Some(new ForkScalaRun { override def runJVMOptions = super.runJVMOptions ++ Seq("-Xmx512m") override def scalaJars = Seq(buildLibraryJar.asFile, buildCompilerJar.asFile) }) }
-
==============================
2.갈래의 프로세스를 위해 당신은 Build.scala 보라
갈래의 프로세스를 위해 당신은 Build.scala 보라
당신이 (또는 빌드라는 이름의 한 무엇이든)이 같은 Build.scala에서 그들을 지정해야 갈래의 프로세스에 대한 Java 옵션을 수정하려면 :
val buildSettings = Defaults.defaultSettings ++ Seq( //… javaOptions += "-Xmx1G", //… )
이것은 전 세계적으로 JAVA_OPTS를 수정하지 않고 당신에게 적절한 옵션을 제공하며, 그것이 SBT에서 사용자 정의 JAVA_OPTS를 넣어 것입니다 시작 스크립트 생성
비 갈래 프로세스를 들어 당신의 SBT 버전에 따라 sbtopts 또는 sbtconfig를 통해 설정을 설정하는 것이 가장 편리합니다.
SBT 이후 0.13.6 .sbtconfig이되지 않습니다. 수정은 / usr / local / etc /이 라인을 따라 sbtopts :
-J-Xms512M -J-Xmx3536M -J-Xss1M -J-XX:+CMSClassUnloadingEnabled -J-XX:+UseConcMarkSweepGC -J-XX:MaxPermSize=724M -J-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
또한은 / usr / local / etc / sbtopts 파일과 같은 구문을 사용하여 SBT 프로젝트의 루트에 .sbtopts 파일을 만들 수 있습니다. 이 프로젝트 자체 포함한다.
SBT의 0.13.6 전에 비 갈래의 프로세스에 대한 .sbtconfig의 옵션을 설정할 수 있습니다 :
당신은 당신이 구골 산에 의해 제안 = ".."SBT ENV의 SBT_OPTS을 사용할 수 있습니다 SBT의 현재 실행에 대해 SBT_OPTS을 설정합니다. 또는 당신은 SBT (12)에서 추가 옵션을 사용할 수 있습니다 :이 옵션의 긴 목록에 대한 다루기 도착 α-MEM 2048 SBT,하지만 당신은 다른 필요와 다른 프로젝트가 있다면 그것은 도움이 될 수 있습니다.
CMSClassUnloadingEnabled이 UseConcMarkSweepGC와 협력하여 깨끗하게 PermGen 공간을 유지하는 데 도움이,하지만 프레임 워크 내용에 따라 당신은 결국 다시 시작을 강제 PermGen에 실제 누수가있을 수 있습니다 사용할 수 있습니다.
-
==============================
3.SBT에서 버전 12 이후 이에 대한 옵션이 있습니다 :
SBT에서 버전 12 이후 이에 대한 옵션이 있습니다 :
$sbt -mem 2048
-
==============================
4.당신이 리눅스 쉘에 SBT 실행하는 경우, 당신은 사용할 수 있습니다 :
당신이 리눅스 쉘에 SBT 실행하는 경우, 당신은 사용할 수 있습니다 :
env JAVA_OPTS="-Xmx512m" sbt run
이것은 내 SBT의 프로젝트를 실행하려면 내 일반적으로 사용되는 명령입니다.
-
==============================
5..sbtconfig는 SBT 0.13.6로 시작되지 않습니다. 대신에, 나는 다음과 같은 방법은 / usr / local / etc / sbtopts에서 이러한 옵션을 구성 :
.sbtconfig는 SBT 0.13.6로 시작되지 않습니다. 대신에, 나는 다음과 같은 방법은 / usr / local / etc / sbtopts에서 이러한 옵션을 구성 :
-J-Xms512M -J-Xmx3536M -J-Xss1M -J-XX:+CMSClassUnloadingEnabled -J-XX:+UseConcMarkSweepGC -J-XX:MaxPermSize=724M -J-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
-
==============================
6.환경 변수 설정 JAVA_OPTS를 사용합니다.
환경 변수 설정 JAVA_OPTS를 사용합니다.
개별 옵션, 예를 들어, 대한 SBT하는 -J-X 옵션을 사용하여 -J-Xmx2048 -J-XX :를 MaxPermSize = 512
SBT의 최신 버전은 "α-MEM"옵션이 있습니다.
-
==============================
7.내가 아는 한 가지 방법이있다. 환경 변수 JAVA_OPTS를 설정합니다.
내가 아는 한 가지 방법이있다. 환경 변수 JAVA_OPTS를 설정합니다.
JAVA_OPTS='-Xmx512m'
나는 명령 매개 변수로이 작업을 수행 할 수있는 방법을 발견하지 않았습니다.
-
==============================
8.javaOptions + = "-XX :를 MaxPermSize = 1024"우리는 SBT 통해 Specs2 테스트를 실행하는 동안 던진 java.lang.OutOfMemoryError와를 볼 때 우리의 build.sbt에서 위의 @iwein에서 참조로 우리를 위해 일했다.
javaOptions + = "-XX :를 MaxPermSize = 1024"우리는 SBT 통해 Specs2 테스트를 실행하는 동안 던진 java.lang.OutOfMemoryError와를 볼 때 우리의 build.sbt에서 위의 @iwein에서 참조로 우리를 위해 일했다.
-
==============================
9.환경 변수 설정해야 _JAVA_OPTIONS이다. 당신이 _JAVA_OPTIONS을 설정하면, 당신은 SBT 경우, SBT는 JAVA_OPTIONS과 값을 사용하여 메시지를 표시합니다.
환경 변수 설정해야 _JAVA_OPTIONS이다. 당신이 _JAVA_OPTIONS을 설정하면, 당신은 SBT 경우, SBT는 JAVA_OPTIONS과 값을 사용하여 메시지를 표시합니다.
또는 당신은 SBT 또는 .scala 파일에 javaOption을 설정할 수 있습니다 예컨대
javaOptions += "-Xmx1G"
SBT 쉘에서 당신은 설정된 값을보고 쇼 javaOptions를 실행할 수 있습니다.
-
==============================
10.
javaOptions in Test += "-Xmx1G"
이 테스트의 JVM 옵션을 설정합니다. JVM의 포크 (fork)으로도 작동 (테스트 포크 : = TRUE).
-
==============================
11.SBT는 당신이라는 이름의 파일에 프로젝트를 실행하는 데 필요한 JVM 옵션을 나열 할
SBT는 당신이라는 이름의 파일에 프로젝트를 실행하는 데 필요한 JVM 옵션을 나열 할
.jvmopts
프로젝트의 루트입니다. 다음 원하는 자바 옵션을 추가
cat .jvmopts -Xms512M -Xmx4096M -Xss2M -XX:MaxMetaspaceSize=1024M
이 테스트 윈도우 10에서 작동합니다 https://www.lagomframework.com/documentation/1.4.x/scala/JVMMemoryOnDev.html
from https://stackoverflow.com/questions/3868863/how-to-specify-jvm-maximum-heap-size-xmx-for-running-an-application-with-run by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라 선물 - 시간 제한에 내장? (0) | 2019.11.02 |
---|---|
[SCALA] 어떻게 여러 개의 파일로 출력을 분할하지 saveAsTextFile를 만드는 방법? (0) | 2019.11.02 |
[SCALA] 스칼라의 목록에 여러 매개 변수 목록과 여러 매개 변수의 차이점은 무엇입니까? (0) | 2019.11.02 |
[SCALA] 스칼라리스트 연결, ::: ++ 대 (0) | 2019.11.01 |
[SCALA] 언제 스칼라에 벡터를 선택해야합니까? (0) | 2019.11.01 |