Найти тему
Programming

Mesh - экономящий память плагин для повышения производительности телефона и компьютера

Мощная новая система уплотнения памяти

https://cdn.pixabay.com/photo/2015/06/24/15/45/ipad-820272__340.jpg
https://cdn.pixabay.com/photo/2015/06/24/15/45/ipad-820272__340.jpg

Источник:

Массачусетский университет в Амхерсте( Amherst )

Статья:

Такие приложения, как веб-браузеры или приложения для смартфонов часто используют большой объем памяти. Для решения этой проблемы исследовательская группа под руководством Эмери Бергер (Emery Berger), профессора информатики в Университете Массачусетса в Амхерсте, разработала систему, которую они называют Mesh, способную автоматически снижать такие требования к памяти. Бергер представляет эту работу сегодня в Cppcon, на конференции C++ в Авроре, штат Колорадо.

Бергер и коллеги из Колледжа информации и информатики ( College of Information and Computer Science - CICS) ожидают, что Mesh окажет существенное влияние на вычислительный мир, начиная с мобильных приложений и заканчивая настольными компьютерами и центрами обработки данных, потому что ранее никто не мог сжать память в приложениях, написанных или запущенных на таких широко распространенных языках, как C, C++ или Objective C - языке, используемом в iOS-приложениях.

Как объясняют авторы, программы, написанные на Си-подобных языках, могут страдать от серьезной фрагментации памяти, где память разбита, как и плохая доска Тетриса, говорит Бергер, поэтому между ними много пустых промежутков. "Вот как память теряется", - указывает он. "Представьте себе доску Тетриса, где вы можете остановиться и реорганизовать ее в любое время - это сделает игру намного проще, потому что вы всегда можете выжать пустое место". Но вы не можете сделать это в C, так же, как вы не можете сделать это в Тетрисе."

Mesh эффективно вытесняет эти пробелы, используя функцию аппаратного обеспечения под названием "виртуальная память", которая поддерживается почти всеми современными компьютерами. "Хитрость в том, чтобы найти куски памяти, которые можно чередовать, как при блокировке шестерен mesh", - объясняет Бергер. Когда Mesh находит эти куски, он может восстановить память из одного из них, объединив два куска в один. "Этот процесс зацепления работает, потому что мы меняем вещи только в "физической" памяти. С точки зрения программы, которая может видеть только "виртуальную" память, ничего не изменилось. Это мощно, потому что мы можем сделать это для любого приложения автоматически".

Команда сообщает, что результаты на сегодняшний день являются чрезвычайно многообещающими; например, использование Mesh автоматически снижает требования к памяти веб-браузера Firefox на 16%. Для Redis, популярного сервера с открытым исходным кодом структуры данных, Mesh снижает требования к памяти почти на 40%.

В команду CICS Mesh входят профессор Эмери Бергер (Emery Berger), эксперт в области управления памятью, разработавший алгоритм, на котором основан менеджер памяти Mac OS X, профессор Эндрю МакГрегор (Andrew McGregor), специалист по разработке и анализу алгоритмов, а также докторанты Бобби Пауэрс (Bobby Powers) и Дэвид Тенч (David Tench). Пауэрс - докторант четвертого курса, который также является инженером инфраструктуры в Stripe, а Тенч - докторант пятого курса, специализирующийся на рандомизированных алгоритмах.

В области, где "катастрофическая фрагментация" долгое время считалась неизбежной, их программное обеспечение является большим шагом вперед, отмечают авторы. "Это то, что все считали невозможным", - отмечает МакГрегор. "После того, как Эмери получил свое ключевое понимание, мы смогли теоретически проанализировать его и разработать эффективный алгоритм для реализации идеи. Вопреки почти 50 годам общепринятой мудрости, здорово, что теперь у нас есть решение этой важной проблемы, которое работает не только в теории, но и на практике".

Ранее в этом году Бергер представил технические детали на конференции ACM SIGPLAN по проектированию и внедрению языков программирования (PLDI '19) в Фениксе. В ответ на доклад программист Microsoft и выдающийся инженер Мигель де Икаса написал в твиттере, что Mesh - это "по-настоящему вдохновляющая работа, имеющая глубокое влияние". Прекрасная идея, полностью разработанная. Какой удивительный вклад в индустрию".