Exekveringsmodellen för mobila, dynamiskt kopplade, objektorienterade program har utvecklats från snabb tolkning till en blandning av tolkad och dynamiskt kompilerad exekvering. Den primära motivationen för dynamisk sammanställning är att sammanställd kod kör betydligt snabbare än tolkad kod. Dynamisk sammanställning, som utförs medan programmet körs, medför dock förseningar i genomförandet. I detta dokument presenterar vi två dynamiska sammanställning tekniker som möjliggör hög prestanda utförande samtidigt minska effekten av denna sammanställning overhead. Dessa tekniker kan klassificeras som: 1) minska mängden utförda sammanställning (Lazy Compilation) och 2) överlappande sammanställning med utförande (Background Compilation). Vi utvärderar först effektiviteten av lata sammanställning. I lat sammanställning, enskilda metoder sammanställs på begäran på deras första anrop. Detta står i kontrast till Eager Compilation, där alla metoder i en klass sammanställs när en ny klass är laddad. Våra experimentella resultat (som erhålls genom att utföra SpecJVM Java-programmen på Jalapeño JVM) visar att, jämfört med ivrig sammanställning, lat sammanställning resulterar i 57% färre metoder som sammanställs och minskningar i total tid (sammanställning plus utförandetid) på 14% till 26%. Därefter presenterar vi profildriven, bakgrundssammanställning, en teknik som förstärker lat sammanställning genom att använda tomgångscykler i multiprocessorsystem för att överlappa sammanställning med applikationsutförande. Profilinformation används för att prioritera metoder som kandidater för bakgrundssammanställning. Våra resultat visar att bakgrundssammanställning kan ge betydande minskningar av totaltiden (26% till 79%), jämfört med ivrig sammanställning.
Krintz m.fl. undersökt effekten av bakgrunds sammanställning i en separat tråd för att minska overhead av dynamisk sammanställning REF.
Reducing the Overhead of Dynamic Compilation
{'venue': 'SOFTWARE: PRACTICE AND EXPERIENCE', 'journal': None, 'mag_field_of_study': ['Computer Science']}