home.social

#утечки_памяти — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #утечки_памяти, aggregated by home.social.

  1. Как избежать утечек памяти во Flutter

    Утечки памяти — одна из тех проблем, которые долго могут оставаться незаметными в мобильном приложении, а затем приводить к росту потребления ресурсов, снижению производительности и нестабильной работе интерфейса. Чаще всего причиной становятся ошибки в управлении жизненным циклом объектов, подписок и контроллеров. В данной статье рассмотрим, какие ошибки чаще всего приводят к утечкам памяти во Flutter, как их обнаруживать и какие практики помогают избежать подобных проблем в реальных проектах.

    habr.com/ru/articles/1035256/

    #Flutter #memory_leaks #утечки_памяти #dispose #Flutter_DevTools #StreamSubscription #state_management #tracker #производительность

  2. Как избежать утечек памяти во Flutter

    Утечки памяти — одна из тех проблем, которые долго могут оставаться незаметными в мобильном приложении, а затем приводить к росту потребления ресурсов, снижению производительности и нестабильной работе интерфейса. Чаще всего причиной становятся ошибки в управлении жизненным циклом объектов, подписок и контроллеров. В данной статье рассмотрим, какие ошибки чаще всего приводят к утечкам памяти во Flutter, как их обнаруживать и какие практики помогают избежать подобных проблем в реальных проектах.

    habr.com/ru/articles/1035256/

    #Flutter #memory_leaks #утечки_памяти #dispose #Flutter_DevTools #StreamSubscription #state_management #tracker #производительность

  3. Как избежать утечек памяти во Flutter

    Утечки памяти — одна из тех проблем, которые долго могут оставаться незаметными в мобильном приложении, а затем приводить к росту потребления ресурсов, снижению производительности и нестабильной работе интерфейса. Чаще всего причиной становятся ошибки в управлении жизненным циклом объектов, подписок и контроллеров. В данной статье рассмотрим, какие ошибки чаще всего приводят к утечкам памяти во Flutter, как их обнаруживать и какие практики помогают избежать подобных проблем в реальных проектах.

    habr.com/ru/articles/1035256/

    #Flutter #memory_leaks #утечки_памяти #dispose #Flutter_DevTools #StreamSubscription #state_management #tracker #производительность

  4. Как избежать утечек памяти во Flutter

    Утечки памяти — одна из тех проблем, которые долго могут оставаться незаметными в мобильном приложении, а затем приводить к росту потребления ресурсов, снижению производительности и нестабильной работе интерфейса. Чаще всего причиной становятся ошибки в управлении жизненным циклом объектов, подписок и контроллеров. В данной статье рассмотрим, какие ошибки чаще всего приводят к утечкам памяти во Flutter, как их обнаруживать и какие практики помогают избежать подобных проблем в реальных проектах.

    habr.com/ru/articles/1035256/

    #Flutter #memory_leaks #утечки_памяти #dispose #Flutter_DevTools #StreamSubscription #state_management #tracker #производительность

  5. Утечки памяти в замыканиях JavaScript

    В предыдущей статье мы подробно рассмотрели замыкания в JavaScript, а сейчас изучим как из-за них возникают утечки памяти и как этого избежать. Замыкание существует пока, есть хоть одна ссылка на функцию создавшею его. Если быть неосторожным, это может привести к утечкам памяти: когда объект уже не используется в программе, но сборщик мусора не может его удалить. Такие ссылки могут быть неочевидными... Что за неочевидные ссылки?

    habr.com/ru/articles/1020246/

    #замыкания #утечки_памяти #javascript #nodejs

  6. Тихий убийца: Деградация производительности без явных ошибок

    В этой статье мыпопробуем провести небольшое расследование, посвященное тому, как найти и обезвредить «тихого убийцу». В частности, мы на конкретных примерах разберём утечки памяти, фрагментацию дисков, проблему 95-го перцентиля и «зловещую тишину» в логах. А также, рассмотрим инструменты, которые не дадут производительности умереть незаметно.

    habr.com/ru/companies/otus/art

    #troubleshooting #утечки_памяти #производительность #деградация_системы #observability #мониторинг #логирование #трассировка #профилирование #узкие_места

  7. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

  8. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

  9. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

  10. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

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

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

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

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

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

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

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

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

  15. [Перевод] Руководство по оптимизации памяти в Unity 6

    Случалось ли вам ловить падение приложения из-за исключения OutOfMemoryException? Управление памятью — важная часть разработки игр, и оно способно сберечь немало нервов. В этом материале разберём, как устроено выделение памяти, как профилировать состояние памяти приложения и как его улучшить. Разобраться в деталях

    habr.com/ru/companies/otus/art

    #геймдев #unity #оптимизация_памяти #профилирование #утечки_памяти #unity_6 #сборщик_мусора #фрагментация_памяти

  16. [Перевод] 10 техник оптимизации Java, которые выведут вас на новый уровень

    Когда Java-приложение внезапно начинает «подвисать», причина почти всегда кроется в прозаичных деталях: неоптимизированных циклах, неудачном выборе коллекций, забытом кэше или агрессивном GC. В этой статье — 10 практических техник, которые помогут выжать максимум из JVM без преждевременной микрооптимизации и шаманства. Только доказавшие свою эффективность подходы, которые реально работают в проде — от финтеха до высоконагруженных API.

    habr.com/ru/companies/otus/art

    #java #оптимизация_Java #производительность_JVM #StringBuilder #сборщик_мусора_Java #утечки_памяти #кэширование_данных #ConcurrentHashMap #профилирование_приложения

  17. Можно ли навсегда избавится от утечек памяти из-за циклических ссылок?

    В комментариях к статье статье в очередной раз услышал мнение, что раз невозможно принципе гарантировать отсутствие циклических ссылок при статическом анализе кода, то в языке Rust утечки памяти из-за циклических ссылок считаются безопасными , так как они не влияют на безопасность при работе с память. Существует множество типов ошибок при работе с памятью, но единственные, которые до сих пор не имеют нормального решения, это утечки памяти из-за циклических ссылок, когда два или более объектов напрямую или косвенно ссылаются друг на друга, в результате чего доступная приложению оперативная память постепенно уменьшается, так как ее невозможно освободить автоматически. Утечки памяти из-за циклических ссылок являются наиболее сложными для анализа, в то время как для всех остальные типов ошибок при работе с памятью уже найдены решения, например на уровне языка программирования, с помощью сборщиков мусора, проверки заимствований или использования шаблонов библиотек. Но проблема утечек памяти из-за циклических ссылок остается нерешенной и по сей день. Но мне кажется, что есть очень простой способ решить проблему утечек памяти из-за циклических ссылок в программе, который можно реализовать практически в любом типизированном языке программирования, конечно, если при этом не использовать все разрешающее ключевое слово unsafe для Rust или std::reinterpret_cast в случае С++.

    habr.com/ru/articles/893238/

    #безопасность_памяти #утечки_памяти #циклическая_ссылка

  18. Как утекает память, если забыть отписаться от Observable

    Многие, конечно, знают, что в Angular-сообществе принято трепетно следить за подписками на Observable, потому что это чревато утечками памяти. Но не все видели эти утечки в глаза и не встречались с их последствиями. Давайте смоделируем простую ситуацию по следам утечки, с которой недавно столкнулся я (первый раз).

    habr.com/ru/articles/879502/

    #утечки_памяти #chrome_devtools #angular #memory_leaks

  19. Сколько памяти ест ваша вкладка

    При разработке веб-приложений не все задумываются о том, сколько памяти потребляет их код. О производительности наших сайтов мы вспоминаем гораздо чаще. К тому же не каждому разработчику интересно «экономить на спичках». Разве может наш код на языке JavaScript требовать много памяти? «Много» — это вообще сколько? 100 мегабайтов — это много? Меня зовут Антон Непша. Я работаю в Сбере, разрабатываю сайт СберБанк Онлайн и веду Telegram-канал Антон Непша.js . Недавно я выступил на HolyJS с докладом о том, сколько ресурсов потребляют наши сайты, как эти ресурсы распределяются, где хранятся, и как связать информацию о них из снимка памяти с конкретным местом в своём коде. Если смотреть видео вам удобнее, то доклад есть на YouTube и ВК Видео . В статье вас ждёт текстовый вариант и ссылки на используемые материалы:

    habr.com/ru/companies/sberbank

    #holyjs #javascript #react #vue #google_chrome #утечки_памяти #нехватка_памяти

  20. [Перевод] Как мы обнаружили потенциальные атаки при помощи штрих-кодов

    Фаззинг — одна из самых успешных методик для поиска багов безопасности, о нём постоянно говорят в статьях и на отраслевых конференциях. Он стал настолько популярным, что большинство важного ПО, казалось бы, должно подвергаться тщательному фаззингу. Но это не всегда так. В этом посте мы покажем, как фаззили библиотеку сканирования штрих-кодов ZBar, и почему, несмотря на ограниченность по времени, обнаружили в ней серьёзные баги: запись в буфер стека out-of-bounds, которая может привести к произвольному выполнению кода при помощи зловредного штрих-кода, и утечку памяти, которую можно использовать для выполнения атаки «отказ в обслуживании» (denial-of-service). ZBar — это опенсорсная библиотека для считывания штрих-кодов, написанная на C. Она поддерживает впечатляющий набор форматов штрих-кодов, в том числе и QR-коды. Её использовал один из наших клиентов, поэтому мы решили вкратце проверить её безопасность. Учитывая огромный объём кода, вручную тестировать его мы не могли. Так как мы не нашли упоминаний о фаззинге этой библиотеки, то решили попробовать его.

    habr.com/ru/companies/ruvds/ar

    #штрихкоды #qrкоды #denial_of_service #отказ_в_обслуживании #утечки_памяти #фаззинг #ruvds_перевод

  21. [Перевод] Как мы обнаружили потенциальные атаки при помощи штрих-кодов

    Фаззинг — одна из самых успешных методик для поиска багов безопасности, о нём постоянно говорят в статьях и на отраслевых конференциях. Он стал настолько популярным, что большинство важного ПО, казалось бы, должно подвергаться тщательному фаззингу. Но это не всегда так. В этом посте мы покажем, как фаззили библиотеку сканирования штрих-кодов ZBar, и почему, несмотря на ограниченность по времени, обнаружили в ней серьёзные баги: запись в буфер стека out-of-bounds, которая может привести к произвольному выполнению кода при помощи зловредного штрих-кода, и утечку памяти, которую можно использовать для выполнения атаки «отказ в обслуживании» (denial-of-service). ZBar — это опенсорсная библиотека для считывания штрих-кодов, написанная на C. Она поддерживает впечатляющий набор форматов штрих-кодов, в том числе и QR-коды. Её использовал один из наших клиентов, поэтому мы решили вкратце проверить её безопасность. Учитывая огромный объём кода, вручную тестировать его мы не могли. Так как мы не нашли упоминаний о фаззинге этой библиотеки, то решили попробовать его.

    habr.com/ru/companies/ruvds/ar

    #штрихкоды #qrкоды #denial_of_service #отказ_в_обслуживании #утечки_памяти #фаззинг #ruvds_перевод

  22. [Перевод] Как мы обнаружили потенциальные атаки при помощи штрих-кодов

    Фаззинг — одна из самых успешных методик для поиска багов безопасности, о нём постоянно говорят в статьях и на отраслевых конференциях. Он стал настолько популярным, что большинство важного ПО, казалось бы, должно подвергаться тщательному фаззингу. Но это не всегда так. В этом посте мы покажем, как фаззили библиотеку сканирования штрих-кодов ZBar, и почему, несмотря на ограниченность по времени, обнаружили в ней серьёзные баги: запись в буфер стека out-of-bounds, которая может привести к произвольному выполнению кода при помощи зловредного штрих-кода, и утечку памяти, которую можно использовать для выполнения атаки «отказ в обслуживании» (denial-of-service). ZBar — это опенсорсная библиотека для считывания штрих-кодов, написанная на C. Она поддерживает впечатляющий набор форматов штрих-кодов, в том числе и QR-коды. Её использовал один из наших клиентов, поэтому мы решили вкратце проверить её безопасность. Учитывая огромный объём кода, вручную тестировать его мы не могли. Так как мы не нашли упоминаний о фаззинге этой библиотеки, то решили попробовать его.

    habr.com/ru/companies/ruvds/ar

    #штрихкоды #qrкоды #denial_of_service #отказ_в_обслуживании #утечки_памяти #фаззинг #ruvds_перевод

  23. [Перевод] Как мы обнаружили потенциальные атаки при помощи штрих-кодов

    Фаззинг — одна из самых успешных методик для поиска багов безопасности, о нём постоянно говорят в статьях и на отраслевых конференциях. Он стал настолько популярным, что большинство важного ПО, казалось бы, должно подвергаться тщательному фаззингу. Но это не всегда так. В этом посте мы покажем, как фаззили библиотеку сканирования штрих-кодов ZBar, и почему, несмотря на ограниченность по времени, обнаружили в ней серьёзные баги: запись в буфер стека out-of-bounds, которая может привести к произвольному выполнению кода при помощи зловредного штрих-кода, и утечку памяти, которую можно использовать для выполнения атаки «отказ в обслуживании» (denial-of-service). ZBar — это опенсорсная библиотека для считывания штрих-кодов, написанная на C. Она поддерживает впечатляющий набор форматов штрих-кодов, в том числе и QR-коды. Её использовал один из наших клиентов, поэтому мы решили вкратце проверить её безопасность. Учитывая огромный объём кода, вручную тестировать его мы не могли. Так как мы не нашли упоминаний о фаззинге этой библиотеки, то решили попробовать его.

    habr.com/ru/companies/ruvds/ar

    #штрихкоды #qrкоды #denial_of_service #отказ_в_обслуживании #утечки_памяти #фаззинг #ruvds_перевод

  24. [Перевод] Процесс, который продолжал умирать

    В этой статье я изложил суть своего выступления, которое состоялось в рамках проводимой нашей компанией образовательной программы «Lunch n' Learn». Если вас просто интересует, как искать утечки памяти в Node, переходите сразу к Части 2 (но тогда вы упустите всю невероятную предысторию). Это рассказ об умершем процессе и о наших злоключениях в попытке найти его убийцу с целью призвать негодяя к правосудию. Если говорить точнее, то этот процесс продолжал умирать циклически, но такая картина нарушает проводимую мной аналогию, поэтому попрошу вас не придавать этому большого значения. Наша история начинается с периодического возникновения ошибки 502 Bad Gateway — загадки, которую предстояло разрешить.

    habr.com/ru/companies/ruvds/ar

    #ruvds_перевод #менеджер_процессов #bad_gateway #утечки_памяти #nodejs #javascript #nextjs

  25. С++: освобождение ресурсов в деструкторах с использованием вспомогательных функции

    В этой статье мы рассмотрим, как правильно разрушать объекты в ООП программе на языке C++, не выполняя избыточных операций. Этим мы завершим цикл публикаций, посвящённый обзору ошибок в игровом движке qdEngine.

    habr.com/ru/companies/pvs-stud

    #рефакторинг #утечки_памяти #си++ #cpp #pvsstudio #статический_анализ_кода #разработка_игр #qdEngine #open_source

  26. Контекст в Vue/Nuxt: осознать, не терять и беречь

    В процессе нашей миграции на Nuxt CAPI, а потом и Nuxt 3, я очень много переосмыслял работу с контекстом как в Vue, так и в Nuxt. Как он сохраняется, на что влияет, и как можем повлиять мы. В какой-то момент я понял, что по данной тематике крайне мало публикаций, а большинство разработчиков даже не знают, что этот контекст существует - и поэтому сами не замечают, как его теряют. Что? Какой контекст? В setup нет this. Как его можно потерять? На что это влияет? Давайте про это поговорим.

    habr.com/ru/articles/812145/

    #vue #nuxt #Nuxt_instance_unavailable #vuejs #утечки_памяти #утечки_данных #утечка_памяти #утечка_данных #nuxtjs #async/await