2015-12-05 2 views
1

У меня проблема с размером 80000, но я застрял, когда я превысил этот предел,Optaplanner; Каков допустимый предел размера?

Есть ли предел для размера проблемы, используемого в Optaplanner?

Что это за лимит?

я получаю исключение Java кучи, когда я превышать этот предел (80000)

ответ

1

Некоторые идеи, чтобы посмотреть в:

1) Дайте JVM больше памяти: -Xmx=2G

2) Используйте более эффективная структура данных. Экран 80k легко впишется в небольшую память. Моя ставка заключается в том, что у вас есть своя матрица между двумя коллекциями. Например, матрица расстояний для местоположений VRP 20k требует (20k)² = 400m целых чисел (каждая из которых не менее 4 байтов), поэтому для сохранения в памяти ее наиболее эффективной формы (массива) требуется почти 2 ГБ ОЗУ. Используйте профилировщик, такой как JProfiler или VisualVM, чтобы узнать, какие объекты данных занимают столько памяти.

3) Прочтите главу о «планировании клонирования». Иногда разделение задания на Job и JobAssignment может сэкономить память, потому что нужно клонировать только объект JobAssignment, тогда как в другом случае все, что ссылается на Job, тоже должно быть клонировано.

Смежные вопросы