home.social

#performance_optimization — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #performance_optimization, aggregated by home.social.

fetched live
  1. GT-STACER 26.07: A New Stable Release for the GNU/Linux System Monitor and Optimizer

    The GT-STACER project has released stable version 26.07, an updated fork of the popular Stacer system monitor and optimization tool, built with C++17 and Qt6. The release introduces two new tools (...

    🔗 https://salehgnutux.github.io/GT-NEWSTECH/en/gnutux-projects/gt-stacer-26-07-release/

    #GT_STACER #System_Monitoring #Performance_Optimization #Tools #Linux #Qt6 #C++17 #gnutux

  2. Логгер в топе VTune: как найти строки, создающие нагрузку

    Профайлер показывает write() и worker файлового логгера среди верхних стеков. Однако системный профайлер не знает, какая из тысяч строк вывода в лог породила нагрузку. Отключать логирование совсем — ужасное решение. Как же связать файловый ввод-вывод с конкретными строками вывода в лог, каналами и backend?

    habr.com/ru/articles/1063260/

    #c++ #logging #intel_vtune #performance_optimization #profiling #логирование #observability #профилирование #профилирование_производительности

  3. [Перевод] Масштабирование Java-систем реального времени

    Событийно-ориентированная архитектура красиво выглядит на схеме — пока не встречается с требованиями реального времени. В переводе от команды Spring АйО разбирается опыт масштабирования Java-платформы контакт-центра: почему локальные кеши начали расходиться, как повторное воспроизведение Kafka-событий почти сделало бесполезным автомасштабирование, откуда взялось получасовое отставание потребителей и почему часть критических путей пришлось вернуть к синхронному взаимодействию. Без войны с Kafka и без универсальных рецептов — только архитектурные компромиссы, которые становятся видны под рабочей нагрузкой.

    habr.com/ru/companies/spring_a

    #kafka #java #kotlin #system_design #performance #performance_optimization

  4. Как мы ускорили KNN-поиск в Manticore: двухпроходный обход HNSW, пакетная обработка и AVX-512

    Кратко: Три изменения в HNSW-поиске ускоряют KNN-поиск до 29% при больших k и дают более 20% прироста при параллельной нагрузке. Без изменений API, без перестроения индексов и без новых настроек — просто более быстрый поиск.

    habr.com/ru/articles/1050922/

    #knn #knnsearch #обработка_больших_данных #обработка_больших_массивов_данных #hnsw #vector_search #векторный_поиск #performance #performance_optimization #производительность

  5. Как я спасал Magento 2 с 1 млн товаров и 10 млн CMS страниц от 504 ошибок

    Как мы спасали Magento 2 с 1 млн товаров и 10 млн CMS страниц от 504 ошибок. Разбор реального кейса оптимизации Magento 2-магазина с более чем 1 миллионом товаров и 10 миллионами CMS-страниц. Покажу, почему возникали ошибки 504 Gateway Timeout, какие узкие места были обнаружены в архитектуре, и как использование Redis, Varnish, MariaDB и OpenSearch позволило добиться стабильной работы системы под высокой нагрузкой.

    habr.com/ru/articles/1050416/

    #magento_2 #magento #php #redis #varnish #performance_optimization #scalability #high_load #ecommerce #full_page_cache

  6. Как оптимизировать картинки в Android и не сломать UX: метрики, практики и компромиссы

    Если экран с картинками начинает тормозить, проблема редко сводится к одному AsyncImage. Разбираю, что действительно стоит измерять, как использовать preview и prefetch, зачем делить устройства на tier и почему одинаковое поведение на всех девайсах почти всегда ошибка.

    habr.com/ru/companies/uzum/art

    #performance #performance_optimization #android #kotlin #coil #compose

  7. [Перевод] Перевополщение Stable Values в JDK 26

    В новом переводе от команды Spring АйО рассмотрим ленивую инициализацию в Java , которая почти всегда значит: поле сначала null , потом double-checked locking, volatile, синхронизация. Ошибиться легко, а final не поставить. Итог - код хрупче и JVM хуже делает constant folding. В JDK 26 (preview, JEP 526) добавили LazyConstant<T> : final поле, рецепт вычисления через Supplier , значение берёте login.get() . Supplier выполнится при первом get и только один раз успешно, даже при гонке потоков. Кроме этого значение помечается как @Stable - JVM может считать его константой и агрессивнее оптимизировать. Граничные случаи: null нельзя; не сериализуется; исключение из Supplier пробросится и следующая попытка снова пересчитает; equals у LazyConstant - только identity. Для 1:n есть List.ofLazy и Map.ofLazy : элементы/значения считаются по индексу/ключу по требованию и кэшируются.

    habr.com/ru/companies/spring_a

    #java #kotlin #jdk #jdk_26 #perf #performance #performance_optimization

  8. 37 000 unit-тестов против Gradle: как мы добились 12-минутного прогона

    Привет я Федотов Михаил, технический лидер по Android разработке в Альфа-банке. Сегодня хочу поговорить про performance (ускорение) unit тестов. Я работаю на проекте Android приложения Альфа-банка для физических лиц. Для нашего большого проекта это время — больная тема, так как у нас около 800 модулей и большая часть кода полностью покрыта unit тестами (за некоторыми исключениями, например, view классы). Сейчас у нас почти 6000 spec (тест-классов) в которых 37 000 тест-кейсов. Общее время прогона всех тестов на CI превышало 3 часа. Локально все тесты прогнать вообще было утопией, так как вероятнее всего сборка просто падала от нехватки оперативной памяти. Сейчас все тесты проекта мы научились прогонять за честные 12 минут и я расскажу что для этого потребовалось.

    habr.com/ru/companies/alfa/art

    #unittests #gradle #mockk #performance_optimization #android

  9. От ощущений к цифрам: как мы внедрили метрики перформанса в андроид приложение

    Всем привет! Меня зовут Тимур, я платформенный Android-разработчик с опытом 5+ лет в ритейле и e-com. В этой статье разберём, почему перформанс на мобильных устройствах это не ощущения, а фактор, который влияет на конверсию и GMV. Покажу, какие метрики имеет смысл собирать на клиенте, как их мониторить, и приведу примеры кода для Android. Присаживайтесь, наливайте чай/кофе — поехали.

    habr.com/ru/articles/978170/

    #performance #performance_optimization #kotlin #android #grafana #mobile_development #mobile_performance

  10. [Перевод] Hibernate Validator 9.1: самый мощный апгрейд за последние годы

    Что, если ваш валидатор стал бы в 3 раза быстрее и потреблял бы вдвое меньше памяти — без единой правки бизнес-логики? Именно это случилось с Hibernate Validator 9.1: ушли тяжёлые коллекции, пришёл умный стек. Каскадная валидация теперь летает, даже при циклах в графе объектов. Плюс бонус: меньше мусора в памяти, меньше аллокаций, быстрее интерполяция сообщений. В бенчмарках — просто космос. Все это – в новом переводе от команды Spring АйО . Комментарий Поливаха Михаила : Несмотря на то, что с валидацией мы напрямую работаем не часто, имейте в виду, что Spring Boot и ваши @RestController -ы под капотом всё равно используют hibernate-validator. Поэтому почитайте, не поленитесь.

    habr.com/ru/companies/spring_a

    #java #kotlin #hibernate #validator #performance #performance_optimization #orm #spring #spring_boot #spring_framework

  11. Как сделать сайт бесконечно ленивым. Часть 4: Преждевременная загрузка

    Ранее мы говорили о том, как улучшить кэширование наших проектов и правильно загружать поставщиков. А в этой статье мы рассмотрим следующее: - Как мы можем использовать стратегии предварительной загрузки, включая что такое "магические" комментарии Webpack, и что такое спекулятивная/ручная предварительная загрузка; - Как мы можем запрашивать данные с сервера, не дожидаясь загрузки наших статических файлов; - А также какие сторонние или наши собственные решения могут быть использованы для этого.

    habr.com/ru/articles/964472/

    #javascript #webpack #lazy_load #performance_optimization #web #webразработка #frontend #frontendразработка #react #typescript

  12. Как сделать сайт бесконечно ленивым. Часть 1: Чем полезна ленивая загрузка

    Ленивая загрузка - это принцип, который должен быть известен большинству frontend разработчиков. Однако, этот механизм обманчиво прост, и его освоение является гораздо более комплексной задачей, чем кажется многим. Если уже используете Lazy Loading, у вас все равно могут быть серьезные пробелы в знаниях. Но даже если вы считаете, что знаете про ленивую загрузку абсолютно все, освежить память не будет лишним. В этой статье мы рассмотрим основы ленивой загрузки: что это такое и почему это важно; как мы можем использовать ленивую загрузку в наших проектах; а также какие части кода следует загружать лениво.

    habr.com/ru/articles/960058/

    #javascript #webpack #lazy_load #performance_optimization #web #webразработка #frontend #frontendразработка #react #typescript

  13. Как сделать сайт бесконечно ленивым. Часть 3: Вендоры и кэш

    Ранее мы поговорили о том, как сделать дерево зависимостей нашего проекта максимально чистым и почему это важно для ленивой загрузки. А в этой статье мы расскажем о следующем: - Как мы должны загружать вендор файлы с точки зрения правильной организации ленивой загрузки. - Что общего между стратегиями оптимизации "ленивой загрузки" и "кэширования", и как использование одной из них влияет на другую. - Что такое кэшируемость и как сделать наше приложение максимально кэшируемым. - А также как правильно настраивать группы кэша в Webpack и не испортить кэшируемость.

    habr.com/ru/articles/963112/

    #javascript #webpack #lazy_load #performance_optimization #web #webразработка #frontend #react #typescript #frontendразработка

  14. Как сделать сайт бесконечно ленивым. Часть 2: Графы зависимостей

    Ранее мы обсуждали самые основы ленивой загрузки и то, почему она вообще важна. А в этой статье мы рассмотрим следующее: - Как бандлеры анализируют файлы исходного кода, строят деревья зависимостей и генерируют файлы для сборки. - Как они генерируют файлы JavaScript из исходного кода. - Как браузеры решают, какие сгенерированные файлы следует загружать, чтобы отобразить ленивую страницу/компонент. - И как мы можем уменьшить размер и количество загружаемых файлов, правильно настроив структуру файлов и корректно используя статический импорт.

    habr.com/ru/articles/962888/

    #javascript #webpack #lazy_load #performance_optimization #web #webразработка #frontend #react #typescript #frontendразработка

  15. [Перевод] JVM: Барьеры, которые подходят любому GC

    В новом переводе от команды Spring АйО рассказывается, как сократить время разогрева JVM с помощью ahead-of-time компиляции (в рамках Project Leyden), а также объясняется, почему традиционные GC-барьеры мешают гибкому выбору сборщика мусора. Статья содержит интересное решение — GC-независимые барьеры загрузки , которые можно «пропатчить» в рантайме под конкретный GC, обеспечивая совместимость без переписывания кода.

    habr.com/ru/companies/spring_a

    #java #jvm #jit #jitкомпилятор #jitкомпиляция #jvm_hacks #jvm_options #performance #performance_optimization

  16. JEP 519: Компактные заголовки объектов — теперь официально

    Команда Spring АйО представляет одну немаловажную фичу Java 25: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.

    habr.com/ru/companies/spring_a

    #java #kotlin #performance #performance_optimization #spring #spring_boot #spring_framework #springboot #spring_security #spring_mvc

  17. [Перевод] Анатомия неудачного микробенчмарка

    В новом переводе от команды Spring АйО подробно разбираются концептуальные, методологические и технические ошибки, на которые легко наткнуться при попытке протестировать такие механизмы, как synchronized и ReentrantLock . Автор объясняет, почему микробенчмарки часто измеряют не то, что вы думаете, и почему для получения осмысленных результатов лучше использовать макротесты или полагаться на экспертов.

    habr.com/ru/companies/spring_a

    #java #kotlin #benchmark #benchmarking #benchmarks #performance #performance_optimization #spring #spring_boot #spring_framework

  18. Как правильно пофиксить INP и весь Performance: опыт команды ОК

    С 12 марта 2024 года метрика FID (First Input Delay) из семейства Core Web Vitals заменена метрикой INP (Interaction to Next Paint), которая оценивает скорость отклика сайтов. При этом, согласно оценке Google, по метрике FID было оптимизировано 93% сайтов, но лишь 65% — по INP. В связи с этим владельцы интернет-ресурсов столкнулись с необходимостью оперативно дорабатывать свои сайты, чтобы не потерять позиции в поисковой выдаче. Меня зовут Кирилл Радыгин. Я руководитель фронтэнд направления в компании Одноклассники. В этой статье я расскажу, как команда ОК адаптировала соцсеть под изменившийся набор метрик оценки перформанса.

    habr.com/ru/companies/vk/artic

    #продуктовая_разработка #performance #performance_optimization #performance_tests #frontend #webvitals #google_console #lcp #inp #cls

  19. Как понять Unity3d, если ты .NET разработчик

    Ловили ли вы себя когда-нибудь на мысли, что, будучи C# .NET разработчиком, вы можете попробовать начать разрабатывать игры на Unity3d? Ведь язык используется тот же. А точно ли тот же? Точно ли код, написанный для .NET, может без проблем быть скопирован для выполнения в Unity3d приложении? Давайте в этом разберемся и поймем, какие дополнительные знания необходимы C# .NET разработчику, чтобы с комфортом разрабатывать игры.

    habr.com/ru/articles/871342/

    #unity3d #unity #c# #performance #performance_optimization #gamedev #gamedevelopment #unity_уроки #unity_туториал #memory_management

  20. Как в eXpress достигали мгновенного рендера отправки сообщения: оптимизация локальной базы данных

    Откройте eXpress, и отправьте в чат простое "Привет". Обратите внимание на то, сколько времени прошло между тем, как вы нажали на кнопку "отправить", и тем, как сообщение появилось в чате. Для человеческого глаза отображение отправленного сообщения в чате происходит мгновенно. Это современный стандарт - действия в чате должны происходить максимально быстро. В идеальном случае никаких задержек быть не должно. Отправка сообщения, тем не менее - это сложная операция, которая требует проделать большой объем работы. Самая существенная её часть - это работа с локальной базой данных. eXpress спроектирован как offline-first, и много данных хранит локально. У одного пользователя могут быть тысячи активных чатов, и десятки/сотни тысяч сообщений, и работа со всеми ними должна оставаться быстрой. Меня зовут Воронская Дарья, я работаю в Android Core команде

    habr.com/ru/companies/express/

    #Android #Sqlite #performance_optimization #room #мессенджеры

  21. Оптимизация производительности Vue.js приложений: Практическое руководство

    Vue.js — один из самых популярных фреймворков для создания пользовательских интерфейсов. Однако, как и в любом крупном веб-приложении, при увеличении количества компонентов и данных, производительность может снижаться. Оптимизация производительности — важный аспект, который влияет на пользовательский опыт и SEO-оценки. В этом руководстве мы рассмотрим практические подходы и техники, которые помогут вам улучшить производительность Vue.js приложений.

    habr.com/ru/articles/839482/

    #Vue #javascript #performance_optimization

  22. Осознанная оптимизация Compose 2: В борьбе с композицией

    Jetpack Compose постоянно развивается, открывая перед разработчиками новые горизонты для оптимизации. С момента нашего последнего обзора, мы добились значительного прогресса, сократив задержки при скролле с 5-7% до нуля. В этом материале мы поделимся свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему, рекомендуем ознакомиться с первой частью.

    habr.com/ru/articles/796437/

    #android #android_development #compose #kotlin #jetpack_compose #jetpack #мобильная_разработка #оптимизация_кода #производительность #performance_optimization

  23. Раскраска SVG картинки во flutter, и почему я решил отключить Impeller

    Сегодня расскажу, как можно реализовать раскраску для векторных картинок, и как выбор графического движка может оказать влияние на производительность в этом кейсе

    habr.com/ru/articles/792858/

    #dart #flutter #development #optimization #performance #performance_optimization #svg #impeller #skia