Java-kildekoden repræsenterer en bærbar og fleksibel programmeringssprog for erhvervslivet , web og håndholdte applikationsudvikling. Denne fordel af portabilitet kommer i nogen lille del takket være Java Virtual Machine. Men JVM repræsenterer også et værktøj, der skal programmører administrere og vedligeholde for at få mest muligt ud af Java-programmer. Især memory forbrug og heap allokering i JVM er detaljer, programmører ville gøre klogt i at overveje. Java Virtual Machine
p Alle Java-kode kører på toppen af Java Virtual Machine. Java-kildekoden først kompileret ind Java " bytecode ", som JVM henretter ved at oversætte bytecode i maskinlæsbare kommandoer. For at udføre denne proces og tillade Java portabilitet det nyder , skal JVM efterligne et edb -system, komplet med hukommelse og data strukturer , således at kildekoden kan gemme og hente data og kommandoer. Et af disse vigtige datastrukturer er bunke .
JVM Heap
computer programmering , kode bruger hukommelse gennem to forskellige interne strukturer er forbundet med edb-systemet . Den " stack " indeholder al koden for øjeblikket udfører funktioner og kommandoer , samt eventuelle lokale variabler erklæret . Den " bunke ", på den anden side indeholder langsigtede data som et program kan tildele for data såsom komplekse objekter . Da Java repræsenterer en helt objektorienteret programmeringssprog, den bunke er afgørende. Men da Java kører på den virtuelle maskine, skal den virtuelle maskine selv indeholder en bunke . Gennem det, kan programmører erklære og instantiere objekter og statiske variabler.
JVM Hukommelse og Fysisk hukommelse
Men JVM er et stykke software , og som sådan skal have bopæl i den fysiske RAM på værtscomputeren . I det væsentlige , bosat JVM bunke i en virtuel maskine , som selv kører på mindet om en maskine, og bruger denne maskines datastrukturer ( såsom dens heap ) . Følgelig er bunke af JVM begrænset af de fysiske begrænsninger af den computer JVM er placeret på . Dette omfatter samtidig kørende software og systemværktøjer . Derfor JVM heap har den ekstra begrænsning af at overholde ikke kun fysisk hukommelse , men også konkurrere med hukommelsesforbrug andre programmer. Dette påvirker de grundlæggende heap attributter , ligesom potentielle størrelse .
JVM Heap Size
For at styre bunke størrelse, kan programmøren ændre de oprindelige og maksimal heap størrelse attributter den fuldbyrdende forekomst af JVM gennem " - Xms " og " - xMX " flag , hhv. Hvor stor den bunke kan vokse afhænger af de begrænsninger af operativsystemet og kørende programmer. En tommelfingerregel er, at heap størrelse bør være stor nok til at undgå at bytte data fra bunken til harddisken . Og minimum og maksimum størrelse bør aldrig være større end den tilgængelige hukommelse på værten system.