Compilers
Welke uitspraak over een uitvoeringsomgeving die JIT-compilatie gebruikt is juist?
- AHet hele programma wordt vóór de uitvoering naar machinecode vertaald en dan gedistribueerd
- BTijdens de uitvoering vaak gebruikte delen worden naar machinecode vertaald en ook informatie van tijdens de uitvoering kan worden gebruikt
- CEr wordt helemaal geen machinecode gebruikt en bytecode wordt eindeloos instructie voor instructie geïnterpreteerd
Antwoord en toelichting tonen
Antwoord: B. Tijdens de uitvoering vaak gebruikte delen worden naar machinecode vertaald en ook informatie van tijdens de uitvoering kan worden gebruikt
Bij JIT-compilatie wordt eerst bytecode geïnterpreteerd en uitgevoerd, en wanneer delen die vaak worden uitgevoerd (hotspots) worden gevonden, worden deze tijdens de uitvoering naar machinecode gecompileerd. Met informatie van tijdens de uitvoering, zoals welke takken werkelijk worden genomen en welke types worden doorgegeven, zijn gedurfde optimalisaties mogelijk die bij vooraf compileren moeilijk zijn. Er is ook een mechanisme om terug te vallen op interpretatie als de aannames niet blijken te kloppen. Alles vooraf vertalen is AOT-compilatie (ahead-of-time), en uitsluitend interpreteren is een zuivere interpreter.