Массивы размещаются в непрерывной области памяти: их размер фиксирован, а элементы находятся последовательно Срез представляет собой структуру-обёртку, содержащую указатель на массив, длину и capacity Capacity — это…
iOS, пользовательская прокрутка UIView с дочерним контентом, превышающим размер экрана Обработка касания: распознавание жестов с помощью UIPanGestureRecognizer Сдвиг контента через изменение frame или transform при…
Как встроить SwiftUI-вью в UIKit с помощью UIHostingController? Для интеграции SwiftUI-вью в UIKit используется UIHostingController UIHostingController — это UIViewController, который служит оболочкой для SwiftUI-вью…
Опыт диагностики утечек памяти и действия при критическом расходе RAM профилирование памяти: использую инструменты профилирования (Valgrind, perf, VisualVM, Memory Profiler) анализ дампов: изучаю heap snapshot и…
Подходы к оптимизации SQL-запросов Индексы: их создают для колонок, участвующих в частых фильтрах и JOIN, чтобы сократить число полных сканирований таблиц Минимизация JOIN: отказ от ненужных соединений,…
Начинаю с анализа логов и профилировщика, включая EXPLAIN, чтобы определить причину задержек Для связанных объектов выбираю жадную загрузку (eager loading), а не ленивую Для сложных случаев использую нативный SQL или…
оптимизация объёма данных при мониторинге и логировании фильтрация логов по уровням ERROR, WARN и INFO настройка семплинга и агрегации логов структурированные логи для более точного поиска сбор полной информации о…
Выбор коллекции и алгоритмическая сложность Тип коллекции определяется требованиями к операциям: добавлению, удалению, поиску и перебору Сравниваю временную сложность основных операций: например, поиск занимает O(1) у…
динамический массив, использующий динамическое выделение памяти перед добавлением проверяется наличие свободной ёмкости если свободного места недостаточно — резервируется дополнительная память (примерно в 2 раза…
Синхронную функцию из асинхронного кода обычно вызывают напрямую. Если результат должен участвовать в цепочке async/await, его при необходимости оборачивают в Promise.
Варианты переноса тяжёлых вычислений из основного потока Web Workers (браузер): запускают JavaScript в отдельном потоке, поэтому UI не блокируется. setTimeout/setImmediate: позволяют разделить задачу на небольшие…
Как преобразовать число в строку за один проход? алгоритмическая задача: преобразование числа → строка за O(n) отказ от промежуточных структур, например массивов цифр применение рекурсии либо итеративного метода с…