Jikes RVM
Utvecklare | Jikes RVM Team, bidragsgivare |
---|---|
Initial release | 1999 |
Stabil frisättning | 3.1.4 / 18 februari 2016
|
Förvar | |
Skrivet i | Java |
Operativ system | Unix-liknande |
Typ | Java virtuell maskin , bibliotek |
Licens | Eclipse Public License |
Hemsida | jikesrvm.org |
Jikes Research Virtual Machine ( Jikes RVM ) är en mogen virtuell maskin som kör program skrivna för Java-plattformen . Till skillnad från de flesta andra virtuella Java-maskiner (JVM) är den skriven på programmeringsspråket Java , i en implementeringsstil som kallas meta-cirkulär . Det är gratis och öppen källkod som släpps under en Eclipse Public License .
Historia
- - projektet som ett internt forskningsprojekt vid IBMs Thomas J. Watson Research Center .
- 1999, 2000 publicerades forskningsartiklar som beskriver nya aspekter av Jikes RVM av IBM-forskare och flera universitet får tillgång till källkoden .
- 2001 oktober, Jikes RVM version 2 släpps som ett modellprojekt med öppen källkod under Common Public License . Utgåvan stöder PowerPC- och Intel-arkitekturer och en rad olika sopsamlingsalgoritmer .
- 2002, Jikes RVM 2.2 släpps med de exakta sophämtarna som nu omarbetats till de populära Memory Management Toolkit- precisionssamlarna.
- 2004, Jikes RVM 2.4 släpps med ökad stabilitet och prestanda delvis, med speciellt fokus för att köra eclipse.
- 2007, utvecklingen av Jikes RVM 2.9 börjar med kodbasen omfattande omstrukturerad för att använda funktionerna i Java 5.0 och för att använda ett Apache Ant- byggsystem.
- 2008 släpptes Jikes RVM 3.0 och markerar slutet på 2.9-utvecklingen och ny stabilitet i kodbasen.
- 2009, Jikes RVM 3.1 släpptes under Eclipse Public License (EPL) med betydande förbättringar jämfört med prestandan för version 3.0.1 och en övergång till native threading .
- 2012 vann Jikes RVM Software -priset Association for Computing Machinery (ACM) Special Interest Group on programmeringsspråk ( SIGPLAN ), citerad för sin "hög kvalitet och modulära design."
Bootstrap
Eftersom den är metacirkulär kräver Jikes RVM en bootstrapping JVM att köra på för att skapa en startbild. Startbilden är en vy av objekten som Jikes RVM kräver för att starta upp skapade med hjälp av reflektion i bootstrap JVM. En liten C- laddare är ansvarig för att ladda upp startbilden vid körning.
VM Magic
VM Magic är där kompilatorn genererar annan kod för en klass än vad bytekoderna inom den klassen ska utföra. VM Magic-klasser ger direkt åtkomst till minne och är nyckeln till Memory Management Toolkits prestanda. VM Magic-klasserna finns i org.vmmagic- paketet och har återanvänts i andra Java-projekt.
Memory Management Toolkit
Memory Management Toolkit (MMTk) är en uppsättning exakta sopsamlare som har använts inom Jikes RVM och andra projekt som operativsystemet Singularity och Shared Source Common Language Infrastructure (SSCLI, tidigare kallad Rotor). Som med resten av Jikes RVM är implementeringen i Java , men det huvudsakliga beroendet är på VM Magic.
Klassbibliotek
Antingen Apache Harmony eller GNU Classpath klassbibliotek kan användas med Jikes RVM, med experimentellt stöd för OpenJDK :s klassbibliotek .
Kompilatorer
Jikes RVM använder en snabb baslinjekompilator för att snabbt generera kod för en given arkitektur. Adaptiv kompilering kompilerar sedan om kod med en optimerande kompilator med funktioner som on-stack-ersättning (OSR). Det adaptiva kompileringssystemet använder en kostnads-nyttoanalysmodell.
Körning
Jikes RVM:s körtid har många innovativa funktioner inklusive mekanismer för snabb låsning, samarbetsschema och stöd för snabb insamling och avsändning av undantag.
Processorer
Jikes RVM stöder PowerPC (eller ppc) och IA-32 (eller Intel x86, 32-bitars) instruktionsuppsättningsprocessorarkitekturer .
Forskning
Eftersom det är ett forskningsprojekt, ligger tyngdpunkten i Jikes RVM på forskning om ny teknik, vilket framgår av de vetenskapliga publikationer som det har skapat – över 220 artiklar från och med 2015.
Jikes RVM har också deltagit i Google Summer of Code 2007, 2008, 2010, 2011 och 2012.
Se även
- Jikes
- Lista över virtuella Java-maskiner
- Gratis Java-implementationer
- Bootstrapping (kompilatorer)
- Självhotell
- Självtolkare
- PyPy (Python-implementering i Python)
- Rubinius (Ruby-implementering i Ruby)