En forskningsgruppe ledet af Emery Berger, professor i datalogi ved UMass Amherst, har udviklet et system, de kalder Mesh, der automatisk kan reducere sådanne hukommelseskrav. Kredit:UMass Amherst
Applikationer som webbrowsere eller smartphone -apps bruger ofte meget hukommelse. For at løse dette, en forskningsgruppe ledet af Emery Berger, professor i datalogi ved University of Massachusetts Amherst, har udviklet et system, de kalder Mesh, der automatisk kan reducere sådanne hukommelseskrav. Berger præsenterer dette arbejde i dag på Cppcon, C ++ - konferencen i Aurora, Colorado.
Berger og kolleger i College of Information and Computer Science (CICS) forventer, at Mesh får en betydelig indvirkning på computerverdenen, fra mobilapplikationer til desktops til datacentre, fordi ingen tidligere har været i stand til at komprimere hukommelse i applikationer skrevet i eller kørende oven på meget brugte sprog som C, C ++, eller mål C, det sprog, der bruges til iOS -apps.
Som forfatterne forklarer, programmer skrevet på C-lignende sprog kan lide af alvorlig hukommelsesfragmentering, hvor hukommelsen brydes op, meget gerne et dårligt Tetris -bord, Berger siger, så der er mange tomme huller imellem. "Sådan bliver hukommelsen spildt, "påpeger han." Forestil dig et Tetris -bræt, hvor du når som helst kan stoppe og omorganisere det - dette ville gøre spillet meget lettere, fordi du altid kunne presse det tomme rum ud. Men du kan ikke gøre dette i C, ligesom du ikke kan gøre det i Tetris. "
Mesh presser effektivt disse huller ud ved at drage fordel af en hardwarefunktion kaldet "virtuel hukommelse", der understøttes af næsten alle moderne computere. "Tricket er at finde bidder af hukommelse, der kan sammenflettes, ligesom når sammenlåsende gear hænger sammen, "Forklarer Berger. Når Mesh finder disse bidder, det kan genvinde hukommelsen fra en af bidderne ved at kombinere de to bidder til bare en. "Denne indgrebsproces fungerer, fordi vi kun ændrer ting i den" fysiske "hukommelse. Fra programmets perspektiv, som kun kan se 'virtuel' hukommelse, intet har ændret sig. Dette er kraftfuldt, fordi vi kan gøre dette for enhver applikation automatisk. "
Teamet rapporterer, at resultaterne til dato har været yderst lovende; for eksempel, brug af Mesh reducerer automatisk Firefox -browserens hukommelseskrav med 16%. For Redis, en populær open source datastrukturserver, Mesh reducerer hukommelseskrav med næsten 40%.
CICS Mesh -teamet omfatter professor Emery Berger, en ekspert i hukommelsesstyring, der har designet algoritmen, som Mac OS X -hukommelsesstyringen er baseret på, professor Andrew McGregor, specialist i algoritmedesign og analyse, og doktorander Bobby Powers og David Tench. Powers er en fjerdeårs doktorand, der også er infrastrukturingeniør hos Stripe, og Tench er en femteårs doktorand med speciale i randomiserede algoritmer.
På et felt, hvor "katastrofal fragmentering" længe blev accepteret som uundgåeligt, deres software er et stort skridt fremad, påpeger forfatterne. "Dette er noget, som alle troede var umuligt, "bemærker McGregor." Efter Emery havde sin centrale indsigt, vi var i stand til at analysere det teoretisk og designe en effektiv algoritme til at implementere ideen. Mod næsten 50 års traditionel visdom, det er dejligt, at vi nu har en løsning på dette vigtige problem, der ikke kun virker i teorien, men det er praktisk. "
Tidligere i år, Berger præsenterede tekniske detaljer på ACM SIGPLAN Programming Language Design and Implementation Conference (PLDI '19) i Phoenix. Som svar på avisen, Microsofts programmør og fremtrædende ingeniør Miguel de Icaza tweetede, at Mesh er et "virkelig inspirerende værk, med dyb påvirkning. En smuk idé fuldt udviklet. Hvilket fantastisk bidrag til branchen. "