Las aplicaciones como los navegadores web o las aplicaciones para teléfonos inteligentes a menudo usan mucha memoria. Para abordar esto, un grupo de investigación codirigido por Emery Berger, profesor de ciencias de la computación en la Universidad de Massachusetts Amherst, ha desarrollado un sistema que llaman Mesh quepuede reducir automáticamente tales demandas de memoria. Berger presenta este trabajo hoy en Cppcon, la conferencia C ++ en Aurora, Colorado.
Berger y sus colegas en el Colegio de Información y Ciencias de la Computación CICS esperan que Mesh tenga un impacto sustancial en el mundo de la computación, desde aplicaciones móviles hasta computadoras de escritorio y centros de datos, porque nadie había podido previamente compactar la memoria en aplicaciones escritasen o ejecutándose sobre lenguajes ampliamente utilizados como C, C ++ u Objective C, el lenguaje utilizado para las aplicaciones de iOS.
Como explican los autores, los programas escritos en lenguajes tipo C pueden sufrir una grave fragmentación de la memoria, donde la memoria se rompe, al igual que una placa de Tetris defectuosa, dice Berger, por lo que hay muchas lagunas vacías en el medio ". Así es comola memoria se desperdicia ", señala." Imagina un tablero de Tetris en el que puedas parar y reorganizarlo en cualquier momento, esto facilitaría mucho el juego, porque siempre podrías exprimir el espacio vacío. Pero no puedeshaz esto en C, como no puedes hacerlo en Tetris "
Mesh efectivamente elimina estas brechas al aprovechar una característica de hardware llamada "memoria virtual" que es compatible con casi todas las computadoras modernas. "El truco es encontrar fragmentos de memoria que puedan ser intercalados, algo así como cuando se entrelazan engranajes de malla", Explica Berger. Cuando Mesh encuentra estos trozos, puede recuperar la memoria de uno de los trozos combinando los dos trozos en uno solo". Este proceso de malla funciona porque solo cambiamos las cosas en la memoria 'física'. Desde la perspectiva deel programa, que solo puede ver la memoria 'virtual', nada ha cambiado. Esto es poderoso porque podemos hacer esto para cualquier aplicación automáticamente ".
El equipo informa que los resultados hasta la fecha han sido extremadamente prometedores; por ejemplo, usar Mesh reduce automáticamente las demandas de memoria del navegador web Firefox en un 16%. Para Redis, un popular servidor de estructura de datos de código abierto, Mesh reduce las demandas de memoria encasi 40%.
El equipo de CICS Mesh incluye al profesor Emery Berger, un experto en gestión de memoria que diseñó el algoritmo en el que se basa el administrador de memoria Mac OS X, el profesor Andrew McGregor, especialista en diseño y análisis de algoritmos, y los candidatos a doctorado Bobby Powers y DavidTench. Powers es un candidato doctoral de cuarto año que también es ingeniero de infraestructura en Stripe, y Tench es un candidato doctoral de quinto año que se especializa en algoritmos aleatorios.
Los autores señalan que en un campo donde la "fragmentación catastrófica" se aceptó como inevitable durante mucho tiempo, su software es un gran paso adelante. "Esto es algo que todos pensaron que era imposible", señala McGregor. "Después de que Emery tuviera su claveInsight, pudimos analizarlo teóricamente y diseñar un algoritmo eficiente para implementar la idea.Con casi 50 años de sabiduría convencional, es genial que ahora tengamos una solución a este importante problema que no solo funciona en teoría, sino que es práctico."
A principios de este año, Berger presentó detalles técnicos en la conferencia ACM SIGPLAN Programming Language Design and Implementation PLDI '19 en Phoenix. En respuesta al documento, el programador de Microsoft y el distinguido ingeniero Miguel de Icaza tuiteó que Mesh es "verdaderamente inspirador"trabajo, con un profundo impacto. Una hermosa idea completamente desarrollada. Qué contribución más increíble para la industria ".
Fuente de la historia :
Materiales proporcionado por Universidad de Massachusetts en Amherst . Nota: El contenido puede ser editado por estilo y longitud.
Cita esta página :