15. Пример
История одной оптимизации
обработка
Чтение
Файл обработка БД
построчно
обработка
Ожидаем многократное ускорение
Процесс в основном ждёт ответа БД
RAC отлично масштабируется
Сделали – померяли – ускорения нет. Разберёмся?
20. 3. Здравый смысл
А почему эти потоки открывают-закрывают коннекции?
А что там у нас выше по стеку?
А откуда?
А если избавиться?
- ускорение 10х+
21. 4. Выводы
Visualvm замечательно показывает происходящее
«изнутри»
Инструменты не заменяют здравый смысл, а дополняют
Ищите основную причину, а не первую
Современные технологии просты в использовании.
Внести неочевидную проблему проще, чем когда-либо.
25. Аудит данных
Цель – знать кто, что и когда изменял когда
На уровне структур данных:
creator, create_timestamp, modifier, modify_timestamp
А также история изменений кто
К примеру, {modifier, timestamp, property, old val, new val}
Да, это требует места
что
26. Отладочное логирование
Не System.out.println() !
Разумные уровни логирования и ротация
В паттерне Не забудьте синхронизировать время
серверов
Дата/время
Имя потока
MDC – имя пользователя, корреляционная информация
Конфигурация через JMX
Время исполнения ключевых методов
Обращение к внешним ресурсам – БД, веб-сервис, JMS
Perf4j или самостоятельно (AOP)