Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime

Всем привет! Меня зовут Фарид, я занимаюсь iOS-разработкой в компании Банки.ру. Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях приложение ведёт себя странно или вовсе аварийно завершается. Начинается долгий и мучительный поиск причин утечки и отладка кода. В нашем проекте ставка сделана на использование SwiftUI, что затрудняет решение задачи: из-за декларативности подхода и отсутствия явно выраженного жизненного цикла в UI, обнаружить причину утечки памяти сложнее. В этой статье мы: 1) пройдёмся по основным подходам к поиску утечек; 2) попробуем найти способ сделать его обнаружение утечек менее болезненным; 3) выясним, можно ли каким-то образом застраховаться от утечек в будущем развитии проекта.

https://habr.com/ru/companies/banki/articles/836924/

#утечка_памяти #iosприложение #swiftui #xcode #тестирование #property_wrapper

Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime

Всем привет! Меня зовут Фарид, я занимаюсь iOS-разработкой в компании Банки.ру. Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях...

Хабр

Точки отказа в HighLoad-системах

Как бороться с типовыми причинами отказа? А самое главное — как их обнаружить? Рассмотрим лучшие элементы инженерной практики, обеспечивающие высокую доступность системы и оперативное расследование инцидентов. Коснёмся памяти, разберём базу данных, поговорим про ТСР-соединения. Меня зовут Константин, я работаю в Газпромбанке. Занимаюсь транзакционными системами: платежами, переводами, также участвовал в разработке системы СПБ в Газпромбанке. В своей практике столкнулся с десятками языков программирования, но в настоящий момент остановился на Java и Kotlin. Поэтому я буду рассказывать про проблемы backend разработки на этих языках.

https://habr.com/ru/companies/oleg-bunin/articles/823498/

#highload #высоконагруженные_системы #разработка_баз_данных #система_логирования #утечка_памяти #пул_соединений #postgresql #микросервисы #базы_данных #таймауты

Точки отказа в HighLoad-системах

Как бороться с типовыми причинами отказа? А самое главное — как их обнаружить? Рассмотрим лучшие элементы инженерной практики, обеспечивающие высокую доступность системы и оперативное расследование...

Хабр

Утечки памяти в мобильных приложениях: руководство для QA-инженеров

Меня зовут Ира и я руковожу отделом тестирования мобильной платформы: наш отдел занимается разработкой инструментов для автоматизации тестирования мобильных приложений Ozon и тестированием внутренних библиотек, которые используются в наших приложениях. Около года назад мы пытались понять, почему у одной из команд джоба с автотестами отваливается по тайм-ауту. К слову, это был проект мобильного приложения для продавцов, и на нем у нас для автоматизации тестирования используются нативные фреймворки: Kaspresso + Kotlin для Android и XCTest + Swift для iOS. Одна из гипотез заключалась в том, что в приложении могут быть утечки памяти и что-то зависает. Спойлер: дело было не в этом. В общем, около года назад я проверяла, что к чему там у нас с памятью приложения, а сейчас поняла, что полученными знаниями можно и поделиться. Эта статья будет полезна тем, кто только начинает изучать, что происходит со стабильностью мобильного приложения. Внутри статьи разберёмся с тем, как приложение работает с оперативной памятью; что такое утечки памяти и когда они возникают; как утечки влияют на стабильность работы приложения и как их находить.

https://habr.com/ru/companies/ozontech/articles/815041/

#qa #ozon #ozon_tech #memory_leak #утечка_памяти #android #kotlin

Утечки памяти в мобильных приложениях: руководство для QA-инженеров

Всем привет! Меня зовут Ира и я руковожу отделом тестирования мобильной платформы: наш отдел занимается разработкой инструментов для автоматизации тестирования мобильных приложений Ozon и...

Хабр

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

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

https://habr.com/ru/articles/812145/

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

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

Привет, Хабр! В процессе нашей в Азбуке миграции на Nuxt CAPI, а потом и Nuxt 3, я очень много переосмыслял работу с контекстом. Как он сохраняется, на что влияет, и как можем повлиять мы. В какой-то...

Хабр

Не все логи одинаковы полезны: 3 истории из жизни

Прочитав статью " Утечки памяти, которые не утечки ", я решил поделиться своим опытом поиска проблем, связанных с нагрузкой систем под управлением Windows. 2 проблемы были связаны с возросшей нагрузкой на ЦПУ и одна проблема связанна с утечкой памяти. В своей статье я расскажу, как выявить проблемы в ПО, не имеющего исходного кода и написанного не вами, а так же как минимальными средствами выяснить, что происходит у вас в системе. Данный текст подойдет администраторам, где по условиям работы всё запрещено, а так же инженерам АСУТП, где систему приходится эксплуатировать в жестких рамках ИБ. Подробнее далее

https://habr.com/ru/articles/790554/

#windows #wmi #acronis_backup #нагрузка_на_сервер #утечка_памяти #логирование #нагрузка_на_процессор

Не все логи одинаковы полезны: 3 истории из жизни

При эксплуатации систем АСУ ТП возникают ситуации, когда написанная подрядчиком диагностика АРМа формирует аварийные сообщения в исторический журнал, после которых и начинаются данные расследования....

Хабр