Я понимаю проблему.Очень хорошо объяснено в другом потоке Как исправить ошибку "Размер запрашиваемого массива превышает ограничение виртуальной машины" в Java? .Я попытался увеличить параметры -Xms6G -Xmx6G -XX: MaxPermSize = 1G -XX: PermSize = 512M.
Мой алгоритм оптимизирован, Мой источник - API REST.Из одного из InputStream я читаю JSON, а затем Gson анализирует данные по блокам.затем перебирая его через каждый кусок и сохраняя его, как показано ниже, фрагмент кода.
Где я не прав?Мой размер JVM уже составляет 50% от оперативной памяти, а jmx и другие параметры также огромны.
1. Я сомневаюсь, что либо List projectedFields содержит очень большие данные, либо результат CustomWrapperResult не можетдля размещения очень огромного набора данных.
2. Можно ли в любом случае записывать данные в projectedFields постепенно
В любом случае, я пишу, как показано ниже, в нескольких разделах.
for (userClassVO this_user:ObjectType_list)
{
List<Object> this_row = populateRowValues(this_user);
result.addRow(this_row.toArray(), projectedFields);
}
Возможно, мне придется проанализировать дамп потока кучи, который может привести меня куда-то.Просто хотел убедиться, что я в правильном направлении?
3. Как можно получить дамп кучи на сервере Denodo VDP?
Спасибо,