Поиск рекомендаций для сквозного Java [закрытые] Профилировщики ЦП

Как насчет:

val unionList = (mapA.asSequence() + mapB.asSequence())
    .distinct()
    .groupBy({ it.key }, { it.value })
    .mapValues { (_, values) -> values.joinToString(",") }

Результат:

{Emergency=112,911, Fire department=101, Police=102}

Это будет:

  • создаст ленивый Sequence ключей обеих карт. пары значений
  • группируют их по ключу (результат: Map<String, List<String>)
  • сопоставляют их значения со строками, объединенными запятыми (результат: Map<String, String>)
6
задан Tulenian 24 December 2008 в 21:30
поделиться

4 ответа

Моим фаворитом, безусловно, является JProfiler. Я не понял это до сейчас (потому что я всегда использую интерактивный профильный GUI), но это действительно на самом деле поддерживает офлайн профилирование, точно как Вы описанный.

Несколько других замечательных функций:

  • Это представляет все Ваши SQL-операторы, таким образом, Вы видите, какие запросы DB замедляют Вас.

  • Это отслеживает, которых методы (в который классы и пакеты) выделяют большую часть памяти, для который типы объектов и массивов и долговечности тех объектов. Так, при утечке памяти легко разыскать, какие типы экземпляров класса переживают свою полноценность, и найти методы, где те объекты были первоначально выделены (и кто держит ссылки, которые поддерживают объекты).

  • Можно отслеживать рост VM, контролируя частоту GC полные наборы, и определяя, сколько объектов (которых вводят) было освобождено во время каждого цикла сбора.

  • И конечно, Вы получаете иерархическую разбивку всех вызовов метода, с количеством вызовов и имеете в виду время выполнения (эксклюзивный или содержащий) целого стека вызовов. Можно также просмотреть эту иерархию с точки зрения "худшего узкого места" функции, заказанные или ко времени выполнения или к выделению памяти.

Для меня JProfiler является одним из самых важных инструментов в моем процессе разработки (второй только к Eclipse).


Также: существует бесплатная 10-дневная пробная версия. Загрузите его и проверьте его. И, btw, я не аффилирован с компанией или чем-либо. Я только что был счастливым клиентом в течение прошлых пяти или шести лет.

5
ответ дан 10 December 2019 в 02:55
поделиться

Я был очень счастлив с Профилировщиком NetBeans; я полагаю, что это также удовлетворяет все Ваши требования.

1
ответ дан 10 December 2019 в 02:55
поделиться

Я не знаком с офлайновым профилированием. Разве это не то, для чего hprof?. Иначе у меня был очень хороший опыт с профилировщиком YourKit.

3
ответ дан 10 December 2019 в 02:55
поделиться

Вы могли попробовать анализатор во время выполнения, который идет с Управлением полетом JRockit. Это производит файлы записи, которые можно открыть в GUI позже. Издержки являются очень низкими, обычно меньше чем 1-2%, и это очень просто в использовании.

Можно запустить запись с командной строки как это:

JROCKIT_HOME\bin> Java-XXjra:recordingtime=2000s, filename=myrecording.jra, sampletime=1

и если JVM выходит, прежде чем запись закончилась, профильные данные будут сброшены к диску.

0
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

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