Как я Сохраняю "кучу" (Дамп в Файл) в Eclipse?

Я думаю, вам нужно это:

select max(s.id) id, s.user_id, s.report_id, s.earned from (
  select user_id, report_id, max(earned) maxearned
  from submission
  group by user_id, report_id
) g inner join submission s
on s.user_id = g.user_id and s.report_id = g.report_id and s.earned = g.maxearned
group by s.user_id, s.report_id, s.earned

См. Демонстрацию
Если вы хотите запросить только для report_id = 3:

select max(s.id) id, s.user_id, s.report_id, s.earned from (
  select user_id, report_id, max(earned) maxearned
  from submission
  where report_id = 3
  group by user_id, report_id
) g inner join submission s
on s.user_id = g.user_id and s.report_id = g.report_id and s.earned = g.maxearned
group by s.user_id, s.report_id, s.earned
order by id

См. демо

5
задан Dave Babbitt 12 May 2009 в 21:32
поделиться

2 ответа

Есть несколько способов получить дамп кучи. Вот некоторые из них, которые я использовал:

  1. -XX: + HeapDumpOnOutOfMemoryError должен вызвать дамп, если вы нажмете OOM.
  2. Подключитесь к VisualVM (бесплатно) и используйте его Графический интерфейс для принудительного создания дампа кучи
  3. Используйте один из многих хороших коммерческих профилировщиков (JProfiler, YourKit, ...)
  4. Используйте jmap (см. Ниже) для принудительного создания дампа из запущенного процесса

Если вы под управлением Java 6 jmap должен работать в Windows. Это может быть полезно, если вы хотите сбросить кучу, но еще не достигли своего OOM. Используйте диспетчер задач Windows, чтобы найти pid-код вашего Java-приложения, и запустите в консоли следующее:

jmap -dump:format=b,file=c:\heap.bin <pid>

В дополнение к VisualVM, Eclipse Memory Analyzer (также бесплатный) может помочь вам проанализировать, что все съедает. пространство после того, как вы получите дамп.

11
ответ дан 18 December 2019 в 13:19
поделиться

Вы можете отслеживать использование памяти с помощью JConsole.

Также поможет jstat .

1
ответ дан 18 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

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