Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 2
Регистрация: 30.09.2013
Сообщений: 89
1

OutOfMEmoryError PerGen space

06.07.2017, 20:30. Просмотров 765. Ответов 6
Метки нет (Все метки)


Здравствуйте. Такая проблема. Есть код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class PermGenSpace {
    public static void main(String[] args) {
        for (int i = 0; i < 1_000_000_000; i++) {
            System.out.println(i);
            try {
                generate("com.dk.String", i);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
 
    public static Class generate(String name, int i) throws Exception {
        ClassPool pool = ClassPool.getDefault();
        CtClass makeClass = pool.makeClass(name + i);
        return makeClass.toClass();
 
    }
}
Из эклипса я его запуская с параметрами

-XX:MaxPermSize=4m -XX:PermSize=1m -Xmx100m -XX:-UseGCOverheadLimit

Ожидаю при этом ошибку OutOfMemoryError PermGen space
Но почему-то все время вылазит такая ощибка в консоле

Exception in thread "main"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"


Пробовал через cmd, та же история.
Объясните пожалуйста почему так? Как добиться PermGen space
Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2017, 20:30
Ответы с готовыми решениями:

Поймал OutOfMemoryError: Java heap space
Вылазит вот такая ошибка. Помогите разобраться почему? public List&lt;String&gt; delimiter(String...

Java.lang.OutOfMemoryError: PermGen space
Здравствуйте! У меня с некотого времени твориться тихий ужас. Раньше, когда я менял код...

Переполнение кучи java.lang.OutOfMemoryError: Java heap space
Доброго времени суток! Помогите настроить jvm. Многое уже перепробовал. Задача в том, чтобы...

Как бороться с java.lang.OutOfMemoryError: Java heap space
Доброго времени суток. На Java пишу программу, требующую большого количества информации...

6
3275 / 2337 / 425
Регистрация: 28.04.2012
Сообщений: 7,821
06.07.2017, 21:26 2
dispetch, зачем тебе это? Какой GC ты используешь? AFAIK PermGen канул в небытие, или типа того.
0
1 / 1 / 2
Регистрация: 30.09.2013
Сообщений: 89
06.07.2017, 21:51  [ТС] 3
Цитата Сообщение от korvin_ Посмотреть сообщение
dispetch, зачем тебе это? Какой GC ты используешь? AFAIK PermGen канул в небытие, или типа того.
Если честно, просто интересно Ну а вообще, когда такие небольшие испытания проводишь, начинаешь лучше понимать как все устроено.
Используется обычный стандартный алгоритм сборки мусора из jdk 7. GC не трогает PermGen, в данном случае. И чудо каким-то образом произошло. Заставил поток засыпать на 50 миллисекунд при каждой итерации, то вылез долгожданный PermGen space. Причем он вылазил из какого-то ексепшена. Но правда воспроизвести заново мне этого не удалось. У меня предположение что данная библиотека на каком-то уровне проверяет permGen в рантайме и стопает поток если что. Проанализировал данное приложение с помощью VisualVM, то работает все верно, PermGen заполняется и количество классов растет. Но вот нужный Еррор не кидается...

Java 8 это конечно круто, но а что делать проектами которые на семерке и ниже?))
0
3275 / 2337 / 425
Регистрация: 28.04.2012
Сообщений: 7,821
06.07.2017, 22:19 4
Цитата Сообщение от dispetch Посмотреть сообщение
Ну а вообще, когда такие небольшие испытания проводишь, начинаешь лучше понимать как все устроено.
Лучше понимаешь, как всё устроено, когда прочитаешь документацию, а не тыкаешь пальцем в небо.

Цитата Сообщение от dispetch Посмотреть сообщение
Используется обычный стандартный алгоритм сборки мусора из jdk 7
Это какой? Их там три или четыре.

Цитата Сообщение от dispetch Посмотреть сообщение
И чудо каким-то образом произошло
Цитата Сообщение от dispetch Посмотреть сообщение
Причем он вылазил из какого-то ексепшена
Цитата Сообщение от dispetch Посмотреть сообщение
Но правда воспроизвести заново мне этого не удалось
Цитата Сообщение от dispetch Посмотреть сообщение
У меня предположение
Читай документацию.

Цитата Сообщение от dispetch Посмотреть сообщение
Java 8 это конечно круто, но а что делать проектами которые на семерке и ниже?))
При чём тут версия Java?
0
1 / 1 / 2
Регистрация: 30.09.2013
Сообщений: 89
06.07.2017, 22:37  [ТС] 5
Цитата Сообщение от korvin_ Посмотреть сообщение
Читай документацию.
Сборщик Serial. Вот не хочешь помогать, зачем чушь всякую писать. То что доки читать надо я и так знаю... Ладно проехали

Цитата Сообщение от korvin_ Посмотреть сообщение
При чём тут версия Java?
Cам же писал что PermGen канул в нибытие. Ну так канул же он начиная с 8 джавы... Хотя насчет канул в нибытие, тут еще вопрос спорный.
0
3275 / 2337 / 425
Регистрация: 28.04.2012
Сообщений: 7,821
06.07.2017, 22:41 6
Цитата Сообщение от dispetch Посмотреть сообщение
Вот не хочешь помогать
Помогать чему? Тыканью пальцем в небо?

Цитата Сообщение от dispetch Посмотреть сообщение
То что доки читать надо я и так знаю
Так почему тогда не читаешь?

Цитата Сообщение от dispetch Посмотреть сообщение
Ну так канул же он начиная с 8 джавы...
С чего ты это взял?
0
1 / 1 / 2
Регистрация: 30.09.2013
Сообщений: 89
06.07.2017, 22:54  [ТС] 7
Цитата Сообщение от korvin_ Посмотреть сообщение
С чего ты это взял?
Кому тут надо больше читать документацию, это видимо еще спорный вопрос...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2017, 22:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Ошибка java.lang.OutOfMemoryError: Java heap space
Я в общем склеил всю музыку, которую хотел сделать фоновой, и вышло 315мб. Закинул в проект, и...

Ошибка: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Запускаю nftool расчёт нейросети на 2000 слоях. Сетка рассчитывается, но при создании m-файла...

Маппирование памяти из user space в system space
В драйвер передается указатель из приложения, который указывает на область памяти в приложении....

OutOfMemoryError
Всем привет. Ошибка заключается в следующем: protected void onCreate(Bundle...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.