Используя ДОЛЛАР для (прежде всего), статической компиляции языка

Причина для ошибки

превышен превышение лимита GC "означает, что сборщик мусора работает все время, а программа Java делает очень медленный прогресс.

blockquote>

После сбора мусора, если процесс Java тратит более 98% своего времени на сборку мусора , и если он восстанавливает менее 2% кучи и делал до сих пор последние 5 последовательных сборок мусора, затем вызывается java.lang.OutOfMemoryError

  1. Увеличьте размер кучи , если текущий
  2. Если вы все еще получаете эту ошибку после увеличения памяти кучи, используйте инструменты профилирования памяти , такие как MAT (инструмент анализатора памяти), Visual VM и т. д. и исправить утечки памяти.
  3. Обновить версию JDK до последней версии (1.8.x) или не менее 1.7.x и использовать алгоритм G1GC. Пропускная способность для G1 GC - 90% времени приложения и 10%
  4. Помимо настройки памяти кучи с помощью Xms1g -Xmx2g, попробуйте
    -XX:+UseG1GC -XX:G1HeapRegionSize=n -XX:MaxGCPauseMillis=m  
    -XX:ParallelGCThreads=n -XX:ConcGCThreads=n
    

. Посмотрите на некоторые более связанные вопросы, касающиеся G1GC

Сбор мусора и документация по G7 [JGK 7] для G1

Сбор мусора Java G1 в производстве

Статья о технической службе Oracle для GC finetuning

8
задан Mansfield 6 June 2012 в 23:18
поделиться

1 ответ

Я не знаю, что любой использует ДОЛЛАР вполне этим способом все же, хотя это - определенно один из его случаев надлежащего использования. Одна интересная вещь рассмотреть состоит в том, что деревья выражений ДОЛЛАРА были объединены с деревьями выражений LINQ, таким образом, IL, производимый для LINQ в некоторой пока еще необъявленной будущей версии Visual Studio, будет использовать код ДОЛЛАРА.

Аккуратный аспект выпуска ДОЛЛАРА как открытый исходный код - то, что мы понятия не имеем, какие виды интересных вещей люди за пределами компании могли бы делать с ним :).

7
ответ дан 5 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: