JMH — это фреймворк от команды разработчиков JVM (Oracle), который помогает создавать и запускать микробенчмарки для измерения производительности Java-кода. Если вы хотите точно понять, насколько быстро работает ваш код (например, сравнить эффективность разных алгоритмов или подходов), JMH — ваш незаменимый помощник.
— Точные измерения:
JMH учитывает влияние JIT-компиляции, прогрева JVM и других факторов, которые могут искажать результаты.
— Простота использования:
Написание бенчмарков интуитивно, и вы сразу видите, что влияет на производительность.
— Гибкость настройки:
Вы можете задавать параметры для тестов, такие как число итераций, потоков, warm-up период и другие.
— Добавьте зависимость JMH в ваш проект:
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.38</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.38</version>
</dependency>
или
implementation 'org.openjdk.jmh:jmh-core:1.38'
annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.38'
— Создайте бенчмарк-класс:
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Thread)
public class MyBenchmark {
@Benchmark
public int testMethod() {
return calculate(1000);
}
private int calculate(int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += i;
}
return sum;
}
}
— Запустите тесты:
Используйте mvn package или gradle build, чтобы собрать проект, и запустите JMH-тесты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
Что внутри:
• 9 уровней, где сложность растёт по экспоненте.
• Полезное: отличная возможность поднять скилл SQL.
• Для новичков: на платформе есть 33 урока, чтобы подтянуть теорию перед игрой.
Готовы к челленджу?
#тренажер
Please open Telegram to view this post
VIEW IN TELEGRAM
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
Представьте, вы попали на собеседование мечты. Всё идёт гладко, но пара неудачных фраз могут свести на нет все ваши старания. Например, если вы слишком скромны или, наоборот, перегибаете с самоуверенностью, это может вызвать недоверие. Или фраза, которая должна показать вашу гибкость, внезапно делает акцент на недостатке опыта. Знакомо?
Есть проверенные подходы, которые помогут избежать таких ситуаций, выстроить грамотное общение и оставить положительное впечатление. Готовы узнать больше? 🌟
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 — Maven
🎉 — Gradle
👍 — Использую оба, в зависимости от проекта
👾 — Другой инструмент, напишу в комментах
😁 — Я ЗОЖ, у меня нет зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #Javadevjob
Вакансии Java разработчиков уровня Junior
▪️ Java разработчик
Офис (Саранск), Инфомаксимум
Подробнее
▪️ Java разработчик
Гибрид (Москва), ВБЦ
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java разработчик
Гибрид (Ижевск) / Удалёнка, Ardecs
Подробнее
▪️ Java разработчик
Гибрид (Москва) / Удалёнка, FINTECH SERVICE
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Java разработчик
Удалёнка, Бэнкс Софт Системс
Подробнее
▪️ Java разработчик
Удалёнка / Гибрид (Москва), S8.Capital
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии Java разработчиков уровня Junior
▪️ Java разработчик
Офис (Саранск), Инфомаксимум
Подробнее
▪️ Java разработчик
Гибрид (Москва), ВБЦ
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java разработчик
Гибрид (Ижевск) / Удалёнка, Ardecs
Подробнее
▪️ Java разработчик
Гибрид (Москва) / Удалёнка, FINTECH SERVICE
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Java разработчик
Удалёнка, Бэнкс Софт Системс
Подробнее
▪️ Java разработчик
Удалёнка / Гибрид (Москва), S8.Capital
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
saransk.hh.ru
Вакансия Java Junior Developer в Саранске, работа в компании Инфомаксимум
Зарплата: не указана. Саранск. Требуемый опыт: не требуется. Полная. Дата публикации: 08.02.2025.
— NLB (Network Load Balancer) – распределяет трафик на уровне IP. Он работает на более низком уровне и не анализирует HTTP-запросы.
— ALB (Application Load Balancer) – маршрутизирует запросы на основе HTTP-заголовков или URL. ALB предлагает более сложные правила маршрутизации. Выбор между NLB и ALB зависит от ваших потребностей. Для простых сервисов в небольших масштабах одного балансировщика нагрузки может быть достаточно.
— API Gateway – работает на уровне приложений и берет на себя задачи, такие как аутентификация, ограничение скорости запросов, кэширование и другие. Его функции отличаются от Load Balancer.
Схема иллюстрирует детали работы этих компонентов. Чаще всего Load Balancer и API Gateway используются вместе, чтобы создать масштабируемую и безопасную архитектуру для современных веб-приложений.
🔹 Два подхода к архитектуре:
— Опция A: ALB + сервисы
ALB распределяет запросы между различными сервисами. Ограничение запросов, аутентификация и другие функции реализуются на уровне сервисов. Это более гибкий подход, но требует больше работы при разработке.
— Опция B: API Gateway + сервисы
API Gateway берет на себя функции аутентификации, ограничения запросов, кэширования и других задач. Это упрощает разработку сервисов, но уменьшает гибкость по сравнению с первым вариантом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы активно используете Stream API, стоит посмотреть на библиотеку JOOλ (jOOL). Она расширяет стандартные возможности потоков, добавляя удобные методы для более гибкой обработки данных.
🔹 Что умеет:
— Операции с парами и кортежами
— Группировка с несколькими уровнями (groupBy c несколькими ключами).
— Трансформации коллекций через удобные методы (например, zip, window, cartesianProduct).
— Функции SQL-подобного стиля, позволяющие писать более декларативный и читабельный код.
JOOλ упрощает работу с потоками и делает код более лаконичным и читаемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, нас часто спрашивают про публикацию материалов о личном опыте и знаниях в IT. Пора это систематизировать!
Если у вас есть история о том, как вы:
— выросли в профессии
— освоили новые технологии
— сделали крутой карьерный скачок
— эпично лажанулись
— создали интересные проекты
Требования простые:
— Реальный опыт
— Конкретные шаги
— От 5000 знаков
— Ссылка на Google Docs
🔥 Лучшие истории опубликуем на сайте и в наших соцсетях с общим охватом 1млн+ человек.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Какого инструмента для работы с БД не существует?
Anonymous Quiz
2%
Hibernate
52%
SpringDB
19%
Jooq
22%
MyBatis
5%
Spring Data JPA
🔥 — никогда, требования всегда стабильные
🎉 — редко, бывает нужно немного доработать
👍 — часто, бывает перерабатываю значительные части
🌚 — требования меняются быстрее, чем успеваю писать код
Please open Telegram to view this post
VIEW IN TELEGRAM
— Мониторинг JVM: позволяет отслеживать использование памяти (heap и non-heap), количество потоков, загрузку процессора и частоту сборки мусора. Также предоставляет данные в реальном времени.
— Профилирование: помогает определить, какие методы или участки кода потребляют больше всего ресурсов, а также сравнить затраты времени между различными частями приложения.
— Анализ дампов памяти: дает возможность загружать и исследовать heap-дампы для выявления утечек памяти или избыточного использования объектов.
— Трейсинг потоков: отслеживает состояние потоков, показывая, активны ли они, находятся в ожидании или блокируются.
— Расширения: поддерживает подключение плагинов, таких как интеграция с JConsole, мониторинг серверов приложений (например, Tomcat) и другие функции.
1. Установить VisualVM. До 9 java он уже входит в JDK. Для более новых версий его можно скачать отдельно с официального сайта: VisualVM.
2. Запустить локальное приложение — для этого достаточно открыть VisualVM и выбрать активный процесс JVM.
3. Подключиться к приложению, чтобы начать мониторинг. Профилируйте наиболее загруженные части, например, выполнение запросов к базе данных, тяжелые вычисления или работу с потоками.
— Проблемы с производительностью, такие как задержки или повышенное потребление памяти.
— Необходимость в оптимизации кода.
— Диагностика ошибок в многопоточных приложениях.
— Устранение утечек памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
🌵🕵️♂️ Git-квест: 10 испытаний для повелителя репозиториев
Готовы проверить свои навыки работы с Git? Пройдите наш квест и узнайте, насколько искусны в управлении репозиториями.
Посмотрим, пугают ли вас git stash, git rebase и прочие страшные слова 😁
🔗 Пройти тест
Готовы проверить свои навыки работы с Git? Пройдите наш квест и узнайте, насколько искусны в управлении репозиториями.
Посмотрим, пугают ли вас git stash, git rebase и прочие страшные слова 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
☁️ Какое облако выбрать?
Для наглядности подготовили для вас карточки со сравнением технологий облачных решений!
📎 Подробнее можно почитать в предыдущем посте
🐸 Библиотека devops'a
Для наглядности подготовили для вас карточки со сравнением технологий облачных решений!
Please open Telegram to view this post
VIEW IN TELEGRAM