Java kildekode representerer en bærbar og fleksibel programmeringsspråk for business , web og håndholdte applikasjonsutvikling . Denne fordelen av bærbarhet kommer på ingen liten del takket være Java Virtual Machine. Imidlertid representerer JVM også et verktøy som programmerere må administrere og vedlikeholde for å få mest mulig ut av Java-programmer. Spesielt , minneforbruk og heap tildeling i JVM er detaljer som programmerere gjør klokt i å vurdere. Java Virtual Machine
Alle Java-kode kjører på toppen av Java Virtual Machine. Java kildekode er første kompilert inn Java " bytecode ", som JVM utfører ved å omregne bytecode i maskinlesbare kommandoer. For å utføre denne prosessen og lar Java portabilitet den innehar, må JVM etterligne et datasystem, komplett med minne og datastrukturer , slik at kildekoden kan lagre og hente data og kommandoer. En av disse viktige datastrukturer er haugen.
JVM Heap
I dataprogrammering , bruker koden minne gjennom to ulike interne strukturer som ligger til datasystemet . Den " stack" inneholder all koden for tiden utfører og kommandoer, samt eventuelle lokale variabler deklarert . Den «masse », på den annen side inneholder langsiktige data at et program kan bevilge for data , slik som komplekse gjenstander . Siden Java representerer en helt objektorientert programmeringsspråk, er haugen avgjørende. Men siden Java kjører på den virtuelle maskinen , må den virtuelle maskinen i seg selv inneholde en haug. Gjennom det, kan programmerere erklære og instantiate objekter og statiske variabler .
JVM Minne og fysisk minne
Imidlertid er JVM et stykke programvare , og som sådan må ligge i den fysiske RAM på vertsmaskinen. I hovedsak ligger det JVM haug i en virtuell maskin , som selv kjører på minnet om en maskin og bruker den maskinen datastrukturer (for eksempel heap sin ) . Følgelig er haug av JVM begrenset av de fysiske begrensninger av datamaskinen JVM knyttet til. Dette inkluderer samtidig kjører programvare og systemverktøy . Derfor har JVM haug den ekstra begrensningen man følger ikke bare til fysisk minne , men også konkurrerer med minnebruk av andre programmer . Dette påvirker grunnleggende haug attributter , som potensielle størrelsen .
JVM Heap størrelse
For å styre heap størrelse, kan programmereren endre de opprinnelige og maksimal heap størrelse attributter utførende forekomst av JVM gjennom " - XMS " og " - xmx " flagg, henholdsvis . Hvor stor haugen kan vokse avhenger av begrensninger i operativsystemet og programmer som kjører . En tommelfingerregel er at heap størrelse bør være store nok til å unngå å bytte data fra haugen til harddisken . Og minimum og maksimum størrelse bør aldri være større enn tilgjengelig minne på vertssystemet.