- PVSM.RU - https://www.pvsm.ru -

[Memory Leak] Почему я туплю после обеда: дефрагментация мозга для сеньора

[Memory Leak] Почему я туплю после обеда: дефрагментация мозга для сеньора - 1

Ситуация. 14:30. Я смотрю в монитор. Вроде бы IDE открыта, метод написан, надо просто дописать пару условий в if/else. Но я уже пятую минуту скроллю один и тот же кусок кода вверх-вниз.

В голове каша. Где-то на фоне крутится мысль, что надо было ответить на письмо заказчика еще утром. В другом потоке — тревога, что на машине странно стучит подвеска. В третьем — жена просила купить хлеба, и надо не забыть, иначе вечером будет Exception.

Пинг мозга [1] скачет до 900 мс. Я физически ощущаю, как кулер в черепной коробке выходит на взлетный режим, а полезная работа — ноль.

Раньше я думал, что просто устал. Шел за третьим кофе, тупил в YouTube. Не помогало. Потом я понял: это не усталость. Это классическая утечка памяти (Memory Leak) и переполнение стека.

Я попробовал применить к своей голове те же принципы, которыми мы дебажим сервера. И это сработало.

Архитектура сбоя: RAM не резиновая

[Memory Leak] Почему я туплю после обеда: дефрагментация мозга для сеньора - 2

Давайте честно: наш мозг [1] — довольно легаси-архитектура. У нас есть два типа памяти, и мы их путаем.

  1. Long-Term Storage (HDD): Огромный объем, но медленный доступ.

  2. Working Memory (RAM): Быстрая, дорогая и критически маленькая.

В когнитивистике есть «Закон Миллера»: стек нашей рабочей памяти держит 7 ± 2 объекта. В реальности, с учетом того, что мы живем в эпоху уведомлений, я бы сказал — 3 ± 1.

В чем баг? Мы юзаем свою оперативку как помойку. Мы пытаемся держать в голове:

  • Баг в продакшене.

  • Идею для пет-проекта.

  • «Надо позвонить маме».

  • Обиду на то, что на дейли меня перебили.

Каждая такая «висячая» задача — это не просто файл на диске. Это запущенный процесс. Эффект Зейгарник (незавершенные действия запоминаются лучше) в терминах IT означает, что процесс висит в статусе Running и жрет такты процессора, даже если вы о нем не думаете.

Когда вы забили стек до отказа (4+ задачи), система начинает свопить (swapping). Вы пытаетесь загрузить контекст рабочей задачи, но места нет. Мозг [1] выгружает «покупку хлеба» на диск, загружает «код», через секунду тревога возвращает «хлеб» обратно... Диск хрустит, система висит.

[Memory Leak] Почему я туплю после обеда: дефрагментация мозга для сеньора - 3

Почему «просто отдохни» — это булшит

Когда вы в таком состоянии говорите себе: «Пойду полежу», вы делаете аналог Sleep Mode. Экран гаснет, но процессы-то висят!

Вы лежите на диване, скроллите ленту, но фоновая тревога («я что-то забыл») продолжает жрать ресурс. Вы встаете с дивана еще более уставшим.

Чтобы починить систему, нужен не Sleep. Нужен Kill -9. Принудительное завершение процессов.

Патч: Протокол «RAM Dump»

Я нашел единственное решение, которое работает безотказно. Это скрипт на 3 минуты. Я делаю его каждый раз, когда чувствую, что начинаю «плыть».

Нам нужен внешний, энергонезависимый носитель. Бумага, Notion, txt-файл — неважно. Главное — вынести данные из головы.

[Memory Leak] Почему я туплю после обеда: дефрагментация мозга для сеньора - 4

Шаг 1: Дамп (2 минуты)

Ставлю таймер. И начинаю выписывать в список вообще всё, что есть в голове. Любой бред.

  • «Надо пофиксить авторизацию».

  • «Странный звук в машине».

  • «Хочу жрать».

  • «Почему ПМ так на меня посмотрел?»

  • «Купить коту корм».

Не фильтрую. Не приоретизирую. Пишу потоком. Фишка в том, что как только задача записана на надежный внешний носитель, мозг [1] помечает её как «Saved» и снимает с неё аллокацию памяти. Вы физически чувствуете, как отпускает.

Шаг 2: Триаж (1 минута)

Смотрю на список. Там хаос. Прогоняю его через простейший алгоритм:

  1. Меньше 2 минут? -> Делаю прямо сейчас (ответить в слаке, записаться к врачу). Вычеркиваю. Процесс убит.

  2. Долгая задача? -> Ставлю в календарь на конкретный слот (завтра в 10:00). Как только у задачи есть время, она перестает висеть в фоне. Система знает: «Это будет обработано потом». Ресурс освобождается.

  3. Мусор? -> Мысли типа «А что, если мы не успеем релиз через год?». Я не могу на это повлиять прямо сейчас. Ставлю тег [IGNORE] или вычеркиваю.

Итог

После этой процедуры в голове наступает звенящая тишина. Серьезно. Стек пуст. Оперативка свободна. Я беру одну задачу из бэклога, загружаю её в чистую RAM и работаю в потоке.

Это не «саморазвитие». Это инженерная гигиена. Вы же не держите на проде сервера с uptime 5 лет без перезагрузки? Не делайте так с собой.


P.S. Если тема зашла — это был лишь «сброс кэша». Чтобы система не падала, нужно еще настроить «Фаервол» (чтобы всякий мусор не залетал обратно через 5 минут) и «Мониторинг».

Я собрал эти протоколы в один PDF-гайд «System Diagnostics» (без воды, чисто мануал: делай раз, делай два). Лежит у меня в канале «КОД ДОСТУПА» [2]. Там разбираем, как применять DevOps к собственной голове.

Автор: Systems_Engineer

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/gtd/437903

Ссылки в тексте:

[1] мозга: http://www.braintools.ru

[2] «КОД ДОСТУПА»: https://t.me/+dr0Kw1tQjWkwOGNi

[3] Источник: https://habr.com/ru/articles/972958/?utm_source=habrahabr&utm_medium=rss&utm_campaign=972958