복붙노트

[SCALA] 어떻게 SBT에서 "실행"조치를 사용하여 응용 프로그램을 실행하는 JVM 최대 힙 크기 "-Xmx"를 지정?

SCALA

어떻게 SBT에서 "실행"조치를 사용하여 응용 프로그램을 실행하는 JVM 최대 힙 크기 "-Xmx"를 지정?

내 응용 프로그램은 큰 데이터 배열 처리를 수행하고 JVM은 기본적으로 제공보다 더 많은 메모리를 필요로한다. 나는 자바가 "-Xmx"옵션에 의해 지정된 압니다. 어떻게 SBT는 "실행"조치를 사용하여 응용 프로그램을 실행하는 데 특히 "-Xmx"값을 사용하도록 설정합니까?

해결법

  1. ==============================

    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. ==============================

    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. ==============================

    3.SBT에서 버전 12 이후 이에 대한 옵션이 있습니다 :

    SBT에서 버전 12 이후 이에 대한 옵션이 있습니다 :

    $sbt -mem 2048 
    
  4. ==============================

    4.당신이 리눅스 쉘에 SBT 실행하는 경우, 당신은 사용할 수 있습니다 :

    당신이 리눅스 쉘에 SBT 실행하는 경우, 당신은 사용할 수 있습니다 :

    env JAVA_OPTS="-Xmx512m" sbt run
    

    이것은 내 SBT의 프로젝트를 실행하려면 내 일반적으로 사용되는 명령입니다.

  5. ==============================

    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. ==============================

    6.환경 변수 설정 JAVA_OPTS를 사용합니다.

    환경 변수 설정 JAVA_OPTS를 사용합니다.

    개별 옵션, 예를 들어, 대한 SBT하는 -J-X 옵션을 사용하여 -J-Xmx2048 -J-XX :를 MaxPermSize = 512

    SBT의 최신 버전은 "α-MEM"옵션이 있습니다.

  7. ==============================

    7.내가 아는 한 가지 방법이있다. 환경 변수 JAVA_OPTS를 설정합니다.

    내가 아는 한 가지 방법이있다. 환경 변수 JAVA_OPTS를 설정합니다.

    JAVA_OPTS='-Xmx512m'
    

    나는 명령 매개 변수로이 작업을 수행 할 수있는 방법을 발견하지 않았습니다.

  8. ==============================

    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. ==============================

    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. ==============================

    10.

        javaOptions in Test += "-Xmx1G"
    

    이 테스트의 JVM 옵션을 설정합니다. JVM의 포크 (fork)으로도 작동 (테스트 포크 : = TRUE).

  11. ==============================

    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

  12. 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