복붙노트

[SCALA] 어떻게 SBT에 대한 힙 크기를 설정하는 방법?

SCALA

어떻게 SBT에 대한 힙 크기를 설정하는 방법?

나는 SBT 0.12.0을 사용하고 있습니다. 내가 스택 오버 플로우에 대한 다른 답변을 읽고 그러나 그들 중 누구도 예를 들어, 도움이되지, 그들을 따라했다 :

나는 뭔가를 놓치고 있습니까? 테스트 및 실행을 모두 수행 할 때 어떻게 SBT 0.12에 대한 힙 크기를 설정합니까?

해결법

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

    1.당신은 여기 내 .bash_profile에에 무엇을 사용, SBT_OPTS이 필요합니다 :

    당신은 여기 내 .bash_profile에에 무엇을 사용, SBT_OPTS이 필요합니다 :

    export SBT_OPTS="-Xmx1536M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=2G -Xss2M  -Duser.timezone=GMT"
    

    최신 정보: 당신의 2G 힙 공간을 얻으려면 당신이 이것을 사용할 수 있습니다 :

    export SBT_OPTS="-Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=2G -Xss2M  -Duser.timezone=GMT"
    

    참고 : SBT는 최신 버전이 있어야한다

    SBT 이전 버전의 재정이 설정, Mac 용 최신 SBT에 대한 사용 양조 업그레이드 SBT는 (Linux 용 IDK) (설치 BREW 가정) 것을 버그를 포함하고있다. https://github.com/sbt/sbt/issues/2945#issuecomment-277490848

  2. ==============================

    2.당신이 브루와 OSX에 SBT를 사용하는 경우 년 3 월 2015, 당신은 파일은 / usr / local / etc / sbtopts을 편집한다

    당신이 브루와 OSX에 SBT를 사용하는 경우 년 3 월 2015, 당신은 파일은 / usr / local / etc / sbtopts을 편집한다

    EG

    # set memory options
    #
    #-mem   <integer>
    -mem 2048
    
  3. ==============================

    3.나를 위해 "SBT-MEM 23000 실행"작품.

    나를 위해 "SBT-MEM 23000 실행"작품.

  4. ==============================

    4.나는 해결책을 발견했다. 당신은 JVM 힙 크기를 지정하는 방법에 상관없이, 그것은 SBT 실행은 이미 오버라이드 (override)가 결코 일 때문입니다.

    나는 해결책을 발견했다. 당신은 JVM 힙 크기를 지정하는 방법에 상관없이, 그것은 SBT 실행은 이미 오버라이드 (override)가 결코 일 때문입니다.

    라고 SBT 실행 파일의 라인이있다 :

    . /usr/share/sbt/sbt-launch-lib.bash

    그래서 파일을 편집 :

      # run sbt
      execRunner "$java_cmd" \
        ${SBT_OPTS:-$default_sbt_opts} \
    -   $(get_mem_opts $sbt_mem) \
        ${java_opts} \
        ${java_args[@]} \
        -jar "$sbt_jar" \
        "${sbt_commands[@]}" \
        "${residual_args[@]}"
    

    라인 -를 제거합니다.

    당신은 SBT를 실행할 때 지금, 그것은 더 이상 JVM 힙 크기 설정을 무시하지 않습니다. 당신은 Noan의 대답 @ 사용하여 힙 크기 설정을 지정할 수 있습니다.

    또는 대안 :

    SBT -J-Xmx4G -J-Xms4G

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

    5.창에서 SBT 0.13.9.2을 위해, 당신은 당신이 원하는 JVM 옵션으로 설정 JAVA_OPTS해야합니다.

    창에서 SBT 0.13.9.2을 위해, 당신은 당신이 원하는 JVM 옵션으로 설정 JAVA_OPTS해야합니다.

    > set JAVA_OPTS=-Xmx1G
    > sbt assembly
    

    sbt.bat 스크립트 CFG_OPTS에 conf의 \ sbtconfig.txt에서의 기본값로드하지만 JAVA_OPTS 대신하는 경우 설정을 사용합니다.

    sbt.bat에서 관련 발췌 :

    rem FIRST we load the config file of extra options.
    set FN=%SBT_HOME%\..\conf\sbtconfig.txt
    set CFG_OPTS=
    FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%FN%") DO (
      set DO_NOT_REUSE_ME=%%i
      rem ZOMG (Part #2) WE use !! here to delay the expansion of
      rem CFG_OPTS, otherwise it remains "" for this loop.
      set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME!
    )
    

    . . . (건너 뛰기) . . .

    rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config.
    set _JAVA_OPTS=%JAVA_OPTS%
    if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=%CFG_OPTS%
    :run
    "%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%sbt-launch.jar" xsbt.boot.Boot %*
    
  6. ==============================

    6.나는 SBT의 설치 사제와 맥 OS X에서이 같은 문제를 해결하기 위해 찾고 있었다. 당신이 사제를 통해 SBT를 설치 한 경우, 당신은 분명히에있어 같은가 / usr / local / bin / SBT 파일 외모부터

    나는 SBT의 설치 사제와 맥 OS X에서이 같은 문제를 해결하기 위해 찾고 있었다. 당신이 사제를 통해 SBT를 설치 한 경우, 당신은 분명히에있어 같은가 / usr / local / bin / SBT 파일 외모부터

    #!/bin/sh
    test -f ~/.sbtconfig && . ~/.sbtconfig
    exec java -Xmx512M ${SBT_OPTS} -jar /usr/local/Cellar/sbt/0.12.3/libexec/sbt-launch.jar "$@"
    

    당신이 SBT_OPTS에 넣어 모든 설정이 (당신의 -Xmx가 우선합니다) 스틱 것이 의미합니다. 또한, 스크립트의 첫 번째 줄에있는 명령을 실행합니다 ~ / .sbtconfig 당신이 그들과 함께 꽤 재생하는 경우 SBT 옵션을 넣어 더 좋은 장소가 될 수 있도록이있는 경우. 당신은 때마다 .bash_profile에 당신이 SBT_OPTS를 변경 / ~ 소스가 없습니다

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

    7.PowerShell을에서 SBT를 실행하는 경우는 SBT_OPTs 환경 변수를 설정과 같이 :

    PowerShell을에서 SBT를 실행하는 경우는 SBT_OPTs 환경 변수를 설정과 같이 :

    $env:SBT_OPTS="-Xms512M -Xmx1024M -Xss2M -XX:MaxMetaspaceSize=1024M"
    

    그런 다음 실행 :

    sbt
    
  8. ==============================

    8.Windows에서 SBT 버전 1.0.4의 경우 기본 JVM 설정은 SBT \ conf의 \ sbtconfig.txt 파일에서 왔습니다. 간단히 여기에 값을 편집 할 수 있습니다. -Xmx2048m로 변경 -Xmx512M.

    Windows에서 SBT 버전 1.0.4의 경우 기본 JVM 설정은 SBT \ conf의 \ sbtconfig.txt 파일에서 왔습니다. 간단히 여기에 값을 편집 할 수 있습니다. -Xmx2048m로 변경 -Xmx512M.

    이 SBT에 대한 JVM 옵션의 유일한 원천이 아니다. 기타는 sbt.bat을 검사하여 확인할 수 있습니다. 설정에서 온 할 진단하는 간단한 방법은 배치 파일에서이 라인을 주석입니다 : @ echo 해제.

  9. ==============================

    9.그것을 할 수있는 빠른 방법합니다 (Lagom 프레임 워크 문서에서) 프로젝트의 루트에 .jvmopts 파일에 있습니다 :

    그것을 할 수있는 빠른 방법합니다 (Lagom 프레임 워크 문서에서) 프로젝트의 루트에 .jvmopts 파일에 있습니다 :

     $ cat .jvmopts
     -Xms512M
     -Xmx4096M
     -Xss2M
     -XX:MaxMetaspaceSize=1024M
    
  10. ==============================

    10.내 경우에는, 내 서비스의 구성은 환경 변수 SBT_OPTS 및 JAVA_OPTS을 덮어했다. 내 build.sbt 다음에 설정하여 제한을 설정할 수 있었다 :

    내 경우에는, 내 서비스의 구성은 환경 변수 SBT_OPTS 및 JAVA_OPTS을 덮어했다. 내 build.sbt 다음에 설정하여 제한을 설정할 수 있었다 :

    javaOptions in Universal ++= Seq(
      "-J-Xms1g",
      "-J-Xmx2g")
    

    참조 : https://www.scala-sbt.org/sbt-native-packager/archetypes/java_app/customize.html

  11. from https://stackoverflow.com/questions/15280839/how-to-set-heap-size-for-sbt by cc-by-sa and MIT license