Работа с динамической памятью.
Хотелось бы поделиться опытом.
Интересует статистика запросов памяти [размер/время жизни] для различных приложений/различных видов приложений, приложений, скомпилированных различными компиляторами на различных языках программирования и под различными платформами.
Если ты такое делал или знаешь где лежит инфа - делись!
Интересует статистика запросов памяти [размер/время жизни] для различных приложений/различных видов приложений, приложений, скомпилированных различными компиляторами на различных языках программирования и под различными платформами.
Если ты такое делал или знаешь где лежит инфа - делись!
Не таким я не занимался, но стало интересно, можно по подробней?
Не таким я не занимался, но стало интересно, можно по подробней?
Можно. Когда передо мной встал вопрос по поводу выбора алгоритма для менеджера памяти, я как нормальный программер начал рыть у Кнута. Сейчас меня наверно закидают батонами, но тем не менее. Этот вопрос освещен у Кнута весьма поверхностно.
Методика его тестирования алгоритмов исходит из того что программы/компиляторы(прикручивающие к приладе свой менеджер) просят память равномерно распределенного размера по некоторому диапазону, причем диапазон не всегда указан явно, при этом время жизни запрошенной памяти также равномерно распределено по столь же загадочному диапазону. При этом я не нашел ни строчки аргументации этих утверждений, более того, утверждения эти косвенные и явно не озвучиваются, но тем не менее кристально четко вытекают из предложенной методики тестирования.
Махнув на Кнута, пошел к Седжвику. Тот сказал мне и того меньше. Помыкавшись от одного классика к другому понял что работу эту придется делать самому.
Но объем немаленький, надо собирать команду, причем никсоидов по той простой причине что придется править сорцы как системы так и прилад(для сбора статистики), под маздаем особо сорцы не гуляют. А поскольку заняться мне было чем, временно махнул рукой на это мероприятие.
А основная идея такая что разные прилады просят память по разному, и отслеживая статистику запроса памяти приложением система, собрав необходимый объем данных, может выбрать оптимальный алгоритм и обслуживать запросы от прилады соответствующим менеджером. Что теоретически может вести как к более шустрой работе, так и к более рациональному распределению памяти.
А основная идея такая что разные прилады просят память по разному, и отслеживая статистику запроса памяти приложением система, собрав необходимый объем данных, может выбрать оптимальный алгоритм и обслуживать запросы от прилады соответствующим менеджером. Что теоретически может вести как к более шустрой работе, так и к более рациональному распределению памяти.
Это тебе надо однозначно копать доку и исходники реализации сборщиков мусора - там эта тема была актуальна с самого начала и активно разрабатывалась. Наверняка не просто так.
Это тебе надо однозначно копать доку и исходники реализации сборщиков мусора - там эта тема была актуальна с самого начала и активно разрабатывалась. Наверняка не просто так.
На сколько я понял сборка мусора тут не причем, речь идет о более эффективном выделении памяти. Хотя когда я был на первых строках мне показалось что так же что можно обойтись смарт поинтерами.
Но мне кажется что и для определения статистики также можно их юзать.