science >> Wetenschap >  >> Elektronica

Introductie van gaas, een geheugenbesparende plug-in die de telefoon- en computerprestaties kan verbeteren

Een onderzoeksgroep onder leiding van Emery Berger, een professor in computerwetenschappen aan de UMass Amherst, heeft een systeem ontwikkeld dat ze Mesh noemen en dat dergelijke geheugenvereisten automatisch kan verminderen. Krediet:UMass Amherst

Applicaties zoals webbrowsers of smartphone-apps gebruiken vaak veel geheugen. Dit behandelen, een onderzoeksgroep onder leiding van Emery Berger, een professor in computerwetenschappen aan de Universiteit van Massachusetts Amherst, heeft een systeem ontwikkeld dat ze Mesh noemen en dat dergelijke geheugenvereisten automatisch kan verminderen. Berger presenteert dit werk vandaag op Cppcon, de C++-conferentie in Aurora, Colorado.

Berger en collega's van het College of Information and Computer Science (CICS) verwachten dat Mesh een substantiële impact zal hebben op de computerwereld, van mobiele applicaties tot desktops tot datacenters, omdat niemand eerder in staat is geweest om geheugen te comprimeren in applicaties die zijn geschreven in of worden uitgevoerd bovenop veelgebruikte talen zoals C, C++, of doelstelling C, de taal die wordt gebruikt voor iOS-apps.

Zoals de auteurs uitleggen, programma's die in C-achtige talen zijn geschreven, kunnen last hebben van ernstige geheugenfragmentatie, waar het geheugen wordt verbroken, net als een slecht Tetris-bord, Berger zegt, dus er zijn veel lege gaten tussenin. "Dit is hoe geheugen wordt verspild, "Hij wijst erop. "Stel je een Tetris-bord voor waar je op elk moment kunt stoppen en het opnieuw kunt ordenen - dit zou het spel een stuk gemakkelijker maken, omdat je de lege ruimte er altijd uit kon persen. Maar je kunt dit niet doen in C, net zoals je het niet kunt doen in Tetris."

Mesh compenseert deze hiaten effectief door gebruik te maken van een hardwarefunctie genaamd 'virtueel geheugen' die door bijna alle moderne computers wordt ondersteund. "De truc is om stukjes geheugen te vinden die kunnen worden verweven, een beetje zoals bij het in elkaar grijpen van tandwielen, " legt Berger uit. Wanneer Mesh deze brokken vindt, het kan het geheugen van een van de chunks terughalen door de twee chunks te combineren tot slechts één. "Dit meshing-proces werkt omdat we alleen dingen veranderen in het 'fysieke' geheugen. Vanuit het perspectief van het programma, die alleen 'virtueel' geheugen kan zien, er is niets veranderd. Dit is krachtig omdat we dit voor elke applicatie automatisch kunnen doen."

Het team meldt dat de resultaten tot nu toe veelbelovend zijn; bijvoorbeeld, het gebruik van Mesh vermindert automatisch de geheugenvereisten van de Firefox-webbrowser met 16%. Voor Redis, een populaire open source datastructuurserver, Mesh vermindert de geheugenbehoefte met bijna 40%.

Het CICS Mesh-team bestaat uit professor Emery Berger, een expert in geheugenbeheer die het algoritme heeft ontworpen waarop de Mac OS X-geheugenbeheerder is gebaseerd, professor Andrew McGregor, een specialist in het ontwerpen en analyseren van algoritmen, en promovendi Bobby Powers en David Tench. Powers is een vierdejaars promovendus die tevens infrastructuuringenieur is bij Stripe, en Tench is een vijfdejaars promovendus die gespecialiseerd is in gerandomiseerde algoritmen.

In een veld waar "catastrofale fragmentatie" lang als onvermijdelijk werd aanvaard, hun software is een grote stap voorwaarts, wijzen de auteurs erop. "Dit is iets waarvan iedereen dacht dat het onmogelijk was, " merkt McGregor op. "Nadat Emery zijn belangrijkste inzicht had, we waren in staat om het theoretisch te analyseren en een efficiënt algoritme te ontwerpen om het idee te implementeren. Tegen bijna 50 jaar conventionele wijsheid, het is geweldig dat we nu een oplossing hebben voor dit belangrijke probleem die niet alleen in theorie werkt, maar is praktisch."

Eerder dit jaar, Berger presenteerde technische details op de ACM SIGPLAN Programming Language Design and Implementation-conferentie (PLDI '19) in Phoenix. In reactie op het blad, Microsoft-programmeur en vooraanstaand ingenieur Miguel de Icaza twitterde dat Mesh een "echt inspirerend werk is, met diepe impact. Een prachtig idee volledig uitgewerkt. Wat een geweldige bijdrage aan de industrie."