Автор: zje , 7 марта 2025

Если вам приходилось перезапускать весь дебаг из-за ошибки в анализе кода, есть лучший способ – Reset Frame. Он позволяет откатить выполнение метода и повторить его выполнение с начала, без полной перезагрузки приложения.

▪️ Как использовать

1. Запускаем дебаг и доходим до брейкпоинта.
2. Открываем окно Debug.
3. Во вкладке Frames (стек вызовов) выбираем нужный метод.
4. Нажимаем ПКМ → Reset Frame.
5. Код откатится на вход в метод, как будто вы только что в него зашли.

▪️ Когда это полезно

Автор: zje , 6 марта 2025

В Intellj IDEA много фич для дебага, ниже перечислены одни из самых полезных: 

1. Условия остановки Если метод часто вызывается, или брейкпоинт стоит в цикле, не тратьте время на ожидание нужных значений: 
- Правый щелчок по брейкпоинту 
- Добавить в Condition условие остановки. Можно использовать все доступные переменные, объекты и методы 

Теги

Автор: zje , 18 октября 2022

У многих разработчиков, рано или поздно, возникает вопрос, а сколько съедают дополнительной памяти при хранении объектов. Нашёл интересную статью с хабра, где автором проведены замеры накладных расходов для популярных коллекций, предполагающих хранение однотипных элементов (то есть списки и множества) и свёл результаты на общий график. Вот картинка для 64-битной Hotspot JVM (Java 1.6):

Теги

Автор: zje , 12 октября 2022

Один из вариантов — найти индексы, по которым вообще не было проходов. Надо предварительно убедиться, что сброс статистики (pg_stat_reset()) происходил достаточно давно, и вы не захотите удалить используемый «редко, но метко». Воспользуемся системным представлением pg_stat_user_indexes:

select * from pg_stat_user_indexes where idx_scan = 0;

Теги

Автор: zje , 12 октября 2022

При вызове docker-compose up произошла ошибка:

ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-d3112caa4d8a -j RETURN: iptables: No chain/target/match by that name.



Решение.

Выполнить команду

service docker restart

Теги

Автор: zje , 5 октября 2022

Для анализа больших дампов предназначены специальные утилиты-анализаторы — Thread Dump Analyzers (TDAs). Эти утилиты парсят Java thread dump-ы и выводят информацию в человеко-читаемом виде, часто с применением графических средств. Более того, некоторые из них могут выполнить статический анализ и найти причину проблемы. 

Теги

Автор: zje , 30 сентября 2022

В Java класс может одновременно реализовать несколько интерфейсов, но наследоваться только от одного класса