Глеб (heart_beater) wrote,
Глеб
heart_beater

Главное - оказаться в нужное время в нужном месте :)

За 2 часа починил утечку памяти, которая "висела" на мне уже почти 3 недели :) Коллеги теперь пытаются меня обвинить в саботаже, потому что у нас тут несколько человек пытались её найти в течение недели. Правда, они попутно нашли кое-какие другие ошибки и подготовили инструмент и стенд. И вот, когда уже всё было готово, я как раз освободился от своих алгоритмов, и почти сразу понял, в чём дело. Всё-таки хорошо, что я не бросился искать эту утечку сразу же. Тогда я наверняка бы тоже потратил кучу времени. А так у меня теперь есть и отданная Валере версия алгоритмов, и исправленная утечка :)

Кстати, ошибка была весьма интересной. Лет 5 назад Артём сделал map, ключом в котором был адрес объекта, и забыл сделать его своевременную очистку. Всё это замечательным образом работало, потому что все адреса располагались в статическом массиве, то есть их было фиксированное число. Но примерно год назад кто-то решил, что вторичка расходует слишком много памяти, и Дима попросил меня сделать динамическое выделение. Соответственно, теперь память стала выделяться уже по разным адресам, и map получил возможность неограниченно расти. Причём его рост зависел от того, выделяются ли новые блоки памяти в системе по тем же адресам, или по новым. А это могло зависеть от кучи причин - и от версии операционки, и от того, какие другие программы работают и как. В итоге - получили утечку, которая то есть, то нет. И "ищут пожарные, ищет милиция..." А исправлялось всё добавлением всего одной строчки кода :)
Tags: Работа
Subscribe
promo heart_beater december 1, 2020 15:33 13
Buy for 100 tokens
Как я уже однажды писал, к сожалению, много лет я выкладывал фотографии к своим постам на фотохостинг Photobucket. Практически все фото с 2006 по ноябрь 2016 года лежат там. Но несколько месяцев назад этот хостинг, если называть вещи своими именами, кинул большую часть своих пользователей, назвав…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 7 comments