25. juni 2002 - 19:31Der er
4 kommentarer og 1 løsning
Compiler
Er der nogen, som kan forklare mig, hvad HotSpot compileren gør? Er det en såkaldt jit-compiler? Jeg troede java's bytekode blev fortolket... Evt., hvordan fungerer det i forhold til Microsofts CLR?
Hot spot ser ved første gennemløb bytekoden igennem om der er "dyre" metodekald og andet der er tungt at afvikle. Derefter indlejrer JVM disse i sig selv (formentlig assembler), så den kan afvikle dem meget hurtigere en ellers. QD::
JVM'en laver en profiling af programmer, og det metoder der bruges meget tid i bliver gemt i ren assembler i stedet for i bytecode. Det kan både være pga. tung beregning, men skyldes oftest mange metode kald.
Man kan endda fremelske denne fremgangsmåde i JDK1.4 ver at skrive
java -server MinKlasse
når man starter programmet.
Parameteren bevirker at JVM'en optimerer endnu mere og bruger derfor mere ram. Det skal dog siges at opstartstiden bliver forlænget pga. denne parameter. Og egnes derfor bedst til application der kører længe af gangen.
Netop. Man ser bla. andet tydeligt i symbolsk maskinkode at specielt invoke virtual tager op til 5 clock cykler for at blive afviklet, så metodekald er tunge. Har prøvet -server, men kunne ikke få det til at køre når jeg samtidig ville give den en -cp til commApien. QD::
Ellers sørg for at commapi'en er nævnt i systemmets classpath så skulle det virke.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.