Как установить максимальный размер кучи при запуске веб-приложения с помощью сервера Cloure Lein Ring? - PullRequest
1 голос
/ 12 марта 2019

Поэтому, когда я запускаю веб-приложение cloure с помощью сервера командного кольца, начинаются 2 обработки. enter image description here

Первый процесс - clojur.main, который затем запускает основное веб-приложение. Параметры jvm

:jvm-opts ["-Xmx128m"  "-server"]

для работы с кольцом для управления памятью для веб-приложения. Проблема заключается в том, что clojure.main -m leingen.core.main выделяет более 300 МБ пространства кучи. (см. скриншот 32)

enter image description here

Ответы [ 3 ]

2 голосов
/ 12 марта 2019

ну, неважно

очевидно, я должен запустить lein батут кольцевой сервер

Таким образом, leingen уходит с дороги, экономя память

1 голос
/ 12 марта 2019

Другой способ - создать uberjar:

> lein clean
> lein uberjar
Compiling demo.hello
Compiling demo.numbers
Created /home/alan/expr/demo-horizon/target/demo-horizon-0.1.0-SNAPSHOT.jar
Created /home/alan/expr/demo-horizon/target/demo-horizon-0.1.0-SNAPSHOT-standalone.jar

Обычно вы всегда хотите использовать xxx-standalone.jar версию.

Затем вы запускаете процесс, используя обычный Java без всякого лейна:

java -jar /home/alan/expr/demo-horizon/target/demo-horizon-0.1.0-SNAPSHOT-standalone.jar

и вы можете добавить любые флаги, такие как -Xmx4g или что угодно еще.


Обновление

Я всегда запускаю lein clean перед созданием uberjar. Это поведение по умолчанию, но его можно отключить, установив :auto-clean false в project.clj. В соответствии с примером проекта .clj:

  ; By default Leiningen will run a clean before creating jars to prevent
  ; undeclared AOT from leaking to downstream consumers; this disables
  ; that behaviour.
  :auto-clean false

Я не могу понять, почему начинать с грязной сборки было бы хорошей идеей, поэтому я всегда сначала запускаю lein clean вручную (на случай, если :auto-clean было отключено).

0 голосов
/ 13 марта 2019

Вам необходимо установить :jvm-opts в вашем project.clj.например,

:jvm-opts ["-Xmx1g" "-server"] 

См. также этот ответ

...