Myvideo

Guest

Login

Рутина инди-разработчика: капс, память и сборщик мусора

Uploaded By: Myvideo
16 views
0
0 votes
0

Сайт программы Канал программы: ТГ: DZ: VK: @classic_ivan RT: YT: TT: 00:00 Проблема с памятью и раскладкой • Программа потребляет 200 МБ памяти на Windows 11. • При переключении раскладки по Caps Lock раскладка определяется неверно. • Автор хочет улучшить функцию определения раскладки. 01:00 Анализ состояния Caps Lock • Проверка состояния Caps Lock показывает, что при нажатии клавиши значение «true», а при отпускании — «false». • Необходимо получать состояние Caps Lock только после отпускания клавиши. 02:56 Проблемы с проверкой раскладки • Проверка раскладки срабатывает только при нажатии клавиши, а не при отпускании. • После отпускания клавиши должно пройти некоторое время перед проверкой раскладки. 05:01 Временная шкала и слепые зоны • После отпускания Caps Lock должно пройти x миллисекунд перед проверкой раскладки. • В слепой зоне лимитер не позволяет проверять раскладку. 08:18 Реализация логики проверки • Для системного индикатора используется задержка, для других источников — без задержек. • Проверка раскладки по нажатию клавиш осуществляется с задержкой. 10:29 Тестирование и оптимизация • Тестирование показывает мгновенную реакцию на Caps Lock без нагрузки на процессор. • Потребление памяти снижается с 80 МБ до 31 МБ. 17:19 Проверка на Windows 11 • На Windows 11 при переключении раскладки потребление памяти составляет 76 МБ. • Подозревается, что проблема связана с отображением формы каретки и индикатора мышки. 19:18 Возможные причины утечки памяти • Утечка памяти может быть вызвана частым использованием методов обновления формы. • Необходимо проверить, может ли это привести к утечке памяти. 20:00 Проблема с памятью • Память непрерывно растёт, даже если убрать лог. • При переключении по системному индикатору память не освобождается. • Проблема, вероятно, в коде получения раскладки по системному индикатору. 21:13 Анализ кода • Обнаружено создание элементов и деревьев, которые могут быть причиной утечки памяти. • Элементы создаются для траверсирования дерева. • Утечка памяти происходит при сохранении файла и поиске элементов. 23:21 Попытки решения • Попытка убрать создание новых элементов для улучшения ситуации. • Переход к статическим элементам не решает проблему. • Необходимость запроса прав администратора для работы с элементами. 25:28 Проблемы с сборщиком мусора • Сборщик мусора не очищает динамические списки элементов. • Даже при очистке памяти проблема остаётся. • Подозрение на вирусы из-за подозрительной активности. 30:19 Использование другого интерфейса • Переход на другой интерфейс для работы с объектами. • Переписывание кода под новый интерфейс. • После переписывания утечка памяти прекращается. 32:03 Тестирование и результаты • Тестирование утечки памяти с помощью таймера. • В Windows 11 утечка памяти остаётся, но в Windows 10 проблема решается. • При интенсивной работе утечка составляет около 20 МБ. 35:23 Заключение • Причина утечки — объекты, не очищаемые GC. • Решение — использование другой библиотеки. • Утечка памяти устранена, но при интенсивной работе может достигать 20 МБ. 36:18 Проверка индикатора и памяти • Проверка работы индикатора. • Анализ использования памяти: индикатор растёт до 62, затем до 66. • Создание тестовой сборки для отправки на тестирование. 37:43 Очистка памяти и использование пула элементов • Очистка памяти после сбора имён. • Использование пула элементов для предотвращения постоянного выделения памяти. • Удаление лишнего кода и проверка работы программы без пула. 39:03 Тестирование программы с и без пула • Перекомпиляция и тестирование программы с и без пула. • Без пула программа не работает, что вызывает удивление. • Попытка понять причину проблемы. 44:07 Анализ ошибок и дебаггинг • Обнаружение ошибки: «нулевой объект должен иметь значение гетю». • Проверка кода на наличие ошибок. • Устранение ошибки путём приведения к булевому значению. 47:02 Проверка кэша и устранение проблем • Проверка работы кэша в Windows 10. • Удаление кэша для устранения проблем. • Компиляция и проверка новой версии программы. 49:49 Заключение и завершение • Подведение итогов: задача по устранению утечки памяти выполнена. • Подготовка тестовой версии для отправки. • Благодарность за внимание и прощание.

Share with your friends

Link:

Embed:

Video Size:

Custom size:

x

Add to Playlist:

Favorites
My Playlist
Watch Later