OOM: direct memory при работе с сетью TCP/IP через NIO в Java
Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut. Работаю в компании без малого 20 лет, из них 18 пишу на Java.
Сегодня я расскажу об опыте увеличения производительности сетевого стэка и проблемах, с которыми можно столкнуться при использовании NIO в Java.
Эта статья основана на реальной практике борьбы с "OutOfMemory: direct memory".
Читать статью
Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut. Работаю в компании без малого 20 лет, из них 18 пишу на Java.
Сегодня я расскажу об опыте увеличения производительности сетевого стэка и проблемах, с которыми можно столкнуться при использовании NIO в Java.
Эта статья основана на реальной практике борьбы с "OutOfMemory: direct memory".
Читать статью
Teletype
OOM: direct memory при работе с сетью TCP/IP через NIO в Java
Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut. Работаю в компании без малого 20 лет, из них...
👍4🔥2
Особое мнение: смотрим на нагрузочные тесты как на функциональные
Что делать, если у команды появилась потребность регулярно оценивать производительность приложения и в динамике сравнивать быстродействие с прошлыми прогонами, а внедрять для этого решение enterprise-уровня - это как из пушки по воробьям? Мы решили пойти немного неочевидным, но продуктивным путём, воспользовавшись опытом реализации функциональных тестов и их интеграции в систему CI/CD, ведь, в сущности, почему нужно обязательно смотреть на тестирование производительности, как на что-то особенное? Что из этого получилось, и с какими проблемами при этом пока ещё приходится мириться - читайте в статье.
Читать статью
Что делать, если у команды появилась потребность регулярно оценивать производительность приложения и в динамике сравнивать быстродействие с прошлыми прогонами, а внедрять для этого решение enterprise-уровня - это как из пушки по воробьям? Мы решили пойти немного неочевидным, но продуктивным путём, воспользовавшись опытом реализации функциональных тестов и их интеграции в систему CI/CD, ведь, в сущности, почему нужно обязательно смотреть на тестирование производительности, как на что-то особенное? Что из этого получилось, и с какими проблемами при этом пока ещё приходится мириться - читайте в статье.
Читать статью
Telegraph
Особое мнение: смотрим на нагрузочные тесты как на функциональные
Всем привет! В команде Мир Plat.Form я занимаюсь системами сертификации эмиссии – наш отдел разрабатывает программные продукты для внутренних и внешних пользователей, автоматизирующие сертификацию всего, что в конечном итоге превращается в «кредитку» в вашем…
👍3🔥2
Конфигурирование пула соедининений JDBC в Hibernate
Возможно, вы не знаете, но Hibernate поддерживает пул соединений JDBC. 😳
Предложенная сегодня статья расскажет о том, как сконфигурировать пул соединений JDBC в Hibernate-приложении, а также в нативном Hibernate-приложении.
Приятного чтения!
Читать статью
Возможно, вы не знаете, но Hibernate поддерживает пул соединений JDBC. 😳
Предложенная сегодня статья расскажет о том, как сконфигурировать пул соединений JDBC в Hibernate-приложении, а также в нативном Hibernate-приложении.
Приятного чтения!
Читать статью
Mastertheboss
Configure Hibernate Connection Pool - Mastertheboss
This article discusses how to configure a JDBC Connection Pool in Hibernate applications covering both Hibernate managed applications and Hibernate Native
👍3
Кэширование контекста Spring между запусками тестов: как ускорить процесс локального тестирования
Тестирование является важным элементом процесса разработки программного обеспечения. При этом работа с тестами может занимать достаточно большое количество времени в сравнении с самой разработкой, в связи с этим возникает необходимость оптимизировать этот процесс. В этой статье рассказывается про плагин Sprinter для IntelliJ IDEA, который может помочь значительно сократить время на локальный запуск тестов.
Читать статью
Тестирование является важным элементом процесса разработки программного обеспечения. При этом работа с тестами может занимать достаточно большое количество времени в сравнении с самой разработкой, в связи с этим возникает необходимость оптимизировать этот процесс. В этой статье рассказывается про плагин Sprinter для IntelliJ IDEA, который может помочь значительно сократить время на локальный запуск тестов.
Читать статью
Teletype
Кэширование контекста Spring между запусками тестов: как ускорить процесс локального тестирования
Тестирование является важным элементом процесса разработки программного обеспечения. При этом работа с тестами может занимать достаточно...
👍3🔥2
Как узнать, допускает ли изменения коллекция в Java?
Пишу эту статью, чтобы помочь Java-разработчикам понять, почему необходимо различать интерфейсы изменяемых (mutable) и неизменяемых (immutable) коллекций. Java — на редкость эффективный язык программирования с почти 30-летней историей. Java Collections Framework (JCF) — одна из наиболее активно используемых частей стандартной библиотеки Java — сыграл важную роль в успешном развитии языка. Сегодня Java продолжает совершенствоваться в соответствии с новыми требованиями, оставаясь в ряду лучших языков программирования. Однако, как и во многих других начинаниях, прошлые успехи не являются гарантией будущих достижений.
Читать статью
Пишу эту статью, чтобы помочь Java-разработчикам понять, почему необходимо различать интерфейсы изменяемых (mutable) и неизменяемых (immutable) коллекций. Java — на редкость эффективный язык программирования с почти 30-летней историей. Java Collections Framework (JCF) — одна из наиболее активно используемых частей стандартной библиотеки Java — сыграл важную роль в успешном развитии языка. Сегодня Java продолжает совершенствоваться в соответствии с новыми требованиями, оставаясь в ряду лучших языков программирования. Однако, как и во многих других начинаниях, прошлые успехи не являются гарантией будущих достижений.
Читать статью
Teletype
Как узнать, допускает ли изменения коллекция в Java?
Пишу эту статью, чтобы помочь Java-разработчикам понять, почему необходимо различать интерфейсы изменяемых (mutable) и неизменяемых...
👍4🔥4
Отложенные вычисления с помощью паттернов
Присоединяйтесь к нашему открытому уроку и погрузитесь в концепцию отложенных вычислений на основе паттернов Мост, Интерпретатор, Итератор.
Ждем вас на открытом вебинаре 28 ноября в 20:00 мск.
🚀На вебинаре вы узнаете:
1. Как и когда применять шаблоны отложенных вычислений для оптимизации производительности.
2. Практические кейсы.
🎯 Вебинар будет полезен:
• Разработчикам и инженерам, стремящимся улучшить производительность в приложениях.
• Архитекторам ПО, проектирующим масштабируемые и отказоустойчивые системы.
• Тимлидам и техническим руководителям, которые хотят повысить производительность и устойчивость решений своей команды.
В результате вебинара:
• Вы научитесь применять шаблоны Мост, Интерпретатор, Итератор.
Встречаемся в преддверии старта курса «Архитектура и шаблоны проектирования». Все участники получат спец. цену на курс.
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cFjUf6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Присоединяйтесь к нашему открытому уроку и погрузитесь в концепцию отложенных вычислений на основе паттернов Мост, Интерпретатор, Итератор.
Ждем вас на открытом вебинаре 28 ноября в 20:00 мск.
🚀На вебинаре вы узнаете:
1. Как и когда применять шаблоны отложенных вычислений для оптимизации производительности.
2. Практические кейсы.
🎯 Вебинар будет полезен:
• Разработчикам и инженерам, стремящимся улучшить производительность в приложениях.
• Архитекторам ПО, проектирующим масштабируемые и отказоустойчивые системы.
• Тимлидам и техническим руководителям, которые хотят повысить производительность и устойчивость решений своей команды.
В результате вебинара:
• Вы научитесь применять шаблоны Мост, Интерпретатор, Итератор.
Встречаемся в преддверии старта курса «Архитектура и шаблоны проектирования». Все участники получат спец. цену на курс.
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cFjUf6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍3🔥1
Не используйте в своем коде паттерн Singleton
Паттерн Singleton популярен среди новичков из-за простоты реализации и возможности глобальной обработки состояний. Но стоит ли его использовать? Из статьи вы узнаете про недостатки Singleton, а также про альтернативу, способную его заменить.
Читать статью
Паттерн Singleton популярен среди новичков из-за простоты реализации и возможности глобальной обработки состояний. Но стоит ли его использовать? Из статьи вы узнаете про недостатки Singleton, а также про альтернативу, способную его заменить.
Читать статью
👍6🔥1
Аннотации и рефлексия в Java
Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных приложений. Аннотации предоставляют способ добавить метаданные к классам, методам и полям, что позволяет компилятору и другим инструментам анализировать код более глубоко. Рефлексия, с другой стороны, позволяет программам анализировать и модифицировать свой собственный состав и поведение во время выполнения.
Читать статью
Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных приложений. Аннотации предоставляют способ добавить метаданные к классам, методам и полям, что позволяет компилятору и другим инструментам анализировать код более глубоко. Рефлексия, с другой стороны, позволяет программам анализировать и модифицировать свой собственный состав и поведение во время выполнения.
Читать статью
Teletype
Аннотации и рефлексия в Java
Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких...
👍5🔥2
⁉️ Ваши микросервисы тормозят? База данных перегружена? Решение есть — кэширование!
На открытом уроке «Кэширование в микросервисной архитектуре» мы разберём, как ускорить системы, сократить время отклика и снизить нагрузку. Вы узнаете про паттерны кэширования, типы кэшей и популярные инструменты вроде Redis и Memcached.
Представьте микросервисы, которые работают молниеносно, а база данных больше не задыхается от запросов. Ваша архитектура станет не только производительной, но и устойчивой.
🔥 Спикер Сергей Прощаев — ведущий инженер-Java-разработчик в одной из крупнейших нефтяных компаний России.
🔴 Регистрируйтесь на вебинар 11 декабря в 20:00 мск! Урок пройдёт перед стартом курса «Microservice Architecture». Только участники получат скидку на обучение: https://vk.cc/cFmQ7u
На открытом уроке «Кэширование в микросервисной архитектуре» мы разберём, как ускорить системы, сократить время отклика и снизить нагрузку. Вы узнаете про паттерны кэширования, типы кэшей и популярные инструменты вроде Redis и Memcached.
Представьте микросервисы, которые работают молниеносно, а база данных больше не задыхается от запросов. Ваша архитектура станет не только производительной, но и устойчивой.
🔥 Спикер Сергей Прощаев — ведущий инженер-Java-разработчик в одной из крупнейших нефтяных компаний России.
🔴 Регистрируйтесь на вебинар 11 декабря в 20:00 мск! Урок пройдёт перед стартом курса «Microservice Architecture». Только участники получат скидку на обучение: https://vk.cc/cFmQ7u
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576👍4🔥2
Пишем минимальный ActivityPub-сервер с нуля
В последнее время, на фоне покупки Twitter Илоном Маском, люди начали искать ему альтернативы — и многие нашли такую альтернативу в Mastodon.
Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется ActivityPub и является стандартом W3C, а Mastodon — далеко не единственная его реализация, но самая популярная. Различные реализации протокола, как правило, совместимы друг с другом, настолько, насколько им позволяют их совпадения в функциональности. У меня есть и мой собственный проект ActivityPub-сервера — Smithereen, такой зелёный децентрализованный ВК, где я когда-нибудь таки верну стену.
В этой статье мы рассмотрим основы протокола ActivityPub и напишем минимально возможную реализацию сервера, позволяющую отправлять посты в сеть («fediverse»), подписываться на других пользователей и получать от них обновления.
Читать статью
В последнее время, на фоне покупки Twitter Илоном Маском, люди начали искать ему альтернативы — и многие нашли такую альтернативу в Mastodon.
Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется ActivityPub и является стандартом W3C, а Mastodon — далеко не единственная его реализация, но самая популярная. Различные реализации протокола, как правило, совместимы друг с другом, настолько, насколько им позволяют их совпадения в функциональности. У меня есть и мой собственный проект ActivityPub-сервера — Smithereen, такой зелёный децентрализованный ВК, где я когда-нибудь таки верну стену.
В этой статье мы рассмотрим основы протокола ActivityPub и напишем минимально возможную реализацию сервера, позволяющую отправлять посты в сеть («fediverse»), подписываться на других пользователей и получать от них обновления.
Читать статью
Teletype
Пишем минимальный ActivityPub-сервер с нуля
В последнее время, на фоне покупки Twitter Илоном Маском, люди начали искать ему альтернативы — и многие нашли такую альтернативу...
👍4🔥2
Обучение на курсе «Разработчик на Spring Framework» — ваш шанс прокачаться и выйти на более серьёзные проекты!
Станьте профессионалом, который уверенно работает с микросервисной архитектурой, быстро доносит идеи до production-grade и владеет Spring на уровне, который ценят в топовых компаниях. Диплом OTUS откроет вам двери к новым возможностям и амбициозным проектам.
🎁 В "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Введение в Apache Flink: осваиваем фреймворк на реальных примерах
Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали использовать фреймворк Apache Flink. Эту технологию выбрали, так как она (в отличие от Apache Spark) относится к true-стримингу и позволяет строить обработку данных с минимальной задержкой. В качестве DI-фреймворка выбрали привычный нам Spring Framework.
Наша команда использует разные виды тестирования: Unit, интеграционное, E2E, ручное, автоматизационное, нагрузочное. Этой теме будет уделено особое внимание. Я расскажу, какие подходы и паттерны помогут быть уверенными в качестве того, что вы разработали.
Эти знания будут полезны любому Java-разработчику, знакомому со Spring. А начинающие Flink-специалисты найдут здесь примеры стандартных ошибок и пути их решения. Обратите внимание, что эти материалы писались, когда актуальной версией Flink была 1.17. В конце октября вышла версия 1.18, и она может отличаться некоторыми нюансами.
Читать статью
Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали использовать фреймворк Apache Flink. Эту технологию выбрали, так как она (в отличие от Apache Spark) относится к true-стримингу и позволяет строить обработку данных с минимальной задержкой. В качестве DI-фреймворка выбрали привычный нам Spring Framework.
Наша команда использует разные виды тестирования: Unit, интеграционное, E2E, ручное, автоматизационное, нагрузочное. Этой теме будет уделено особое внимание. Я расскажу, какие подходы и паттерны помогут быть уверенными в качестве того, что вы разработали.
Эти знания будут полезны любому Java-разработчику, знакомому со Spring. А начинающие Flink-специалисты найдут здесь примеры стандартных ошибок и пути их решения. Обратите внимание, что эти материалы писались, когда актуальной версией Flink была 1.17. В конце октября вышла версия 1.18, и она может отличаться некоторыми нюансами.
Читать статью
Teletype
Введение в Apache Flink: осваиваем фреймворк на реальных примерах
Всем привет, меня зовут Александр Бобряков. Я техлид в команде МТС Аналитики, занимаюсь Real-Time обработкой данных. Недавно мы начали...
👍4🔥1
Визуализация популярных команд Git
Мы, конечно, знаем, что Git - это достаточно мощный тул, но в то же время, он не очень нагляден. 😒
В предложенной сегодня статье представлены примеры визуализации наиболее часто используемых команд, что позволит лучше понимать механизм их работы и быстрее их запомнить.
Хорошей памяти!
Читать статью
Мы, конечно, знаем, что Git - это достаточно мощный тул, но в то же время, он не очень нагляден. 😒
В предложенной сегодня статье представлены примеры визуализации наиболее часто используемых команд, что позволит лучше понимать механизм их работы и быстрее их запомнить.
Хорошей памяти!
Читать статью
👍4🔥2🎉1
Поиск багов с помощью дампов потоков Java
Умение использовать дампы потоков в Java зачастую помогает устранения ряда проблем в работе программ: высокая загрузка ЦП, взаимоблокировки или не отвечающие приложения.
В данном руководстве подробно разбираются тонкости работы с дампами: их создание, анализ и многое другое.
Читать статью
Умение использовать дампы потоков в Java зачастую помогает устранения ряда проблем в работе программ: высокая загрузка ЦП, взаимоблокировки или не отвечающие приложения.
В данном руководстве подробно разбираются тонкости работы с дампами: их создание, анализ и многое другое.
Читать статью
👍5
Все, что вам нужно знать о конфигурации Spring
В данном руководстве подробно рассказывается о конфигурации Spring, а также разбираются основные аннотации - Bean, Configuration и PropertySource.
Читать статью
В данном руководстве подробно рассказывается о конфигурации Spring, а также разбираются основные аннотации - Bean, Configuration и PropertySource.
Читать статью
👍7
Новогодний список: ёлка, мандарины и карьерный рост! 🎇
Новый год — шанс стать лучшей версией себя. Как раз для этого и создан бесплатный онлайн-интенсив в Открытых школах Т1 для Java-разработчиков с опытом от года.
За месяц ты сможешь поднять свои скилы на новый уровень и познакомиться с ИТ-холдингом Т1, а после — принять участие в offer weeks.
📆 Быстрое обучение: 1 месяц.
💻 Гибкий формат: все этапы проходят онлайн, занятия — по вечерам.
Почему в Т1 классно?
🔹 Уникальный рыночный опыт и масштабные ИТ-проекты для ключевых отраслей экономики. Разработки Т1 ежегодно получают награды на ИТ-конкурсах: Global CIO, Национальной банковской премии и других.
🔹 Быстрый рост в ИТ при экспертной поддержке. Карьерные треки для выпускников Открытых школ позволяют быстро расти в профессии.
🔹 Бигтех-культура и айтишные бонусы: ИТ-аккредитация, современный техстек, ДМС, удаленка, крутые офисы, спорт, обучение, ИТ-конференции, программы признания и развития и многое другое от Т1.
Подай заявку на интенсив до 14.01, и пусть 2025 принесёт тебе не только подарки, но и карьерный рост!
Реклама. ООО «Т1» ИНН: 7720484492. Erid: 2SDnjdhR9hM
Новый год — шанс стать лучшей версией себя. Как раз для этого и создан бесплатный онлайн-интенсив в Открытых школах Т1 для Java-разработчиков с опытом от года.
За месяц ты сможешь поднять свои скилы на новый уровень и познакомиться с ИТ-холдингом Т1, а после — принять участие в offer weeks.
Почему в Т1 классно?
Подай заявку на интенсив до 14.01, и пусть 2025 принесёт тебе не только подарки, но и карьерный рост!
Реклама. ООО «Т1» ИНН: 7720484492. Erid: 2SDnjdhR9hM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2👏1😢1
Настройка CI/CD глазами разработчика
Тема, которая будет сегодня освещена, рассказывается от лица backend разработчика. На нашем проекте нет devops'а, который бы мог подсказать, направить. Поэтому нам пришлось выходить из зоны комфорта.
Читать статью
Тема, которая будет сегодня освещена, рассказывается от лица backend разработчика. На нашем проекте нет devops'а, который бы мог подсказать, направить. Поэтому нам пришлось выходить из зоны комфорта.
Читать статью
Teletype
Настройка CI/CD глазами разработчика
Введение
👍9