Programiranje

Nasvet Java 28: Izboljšajte zmogljivost prenosa programčka s pomočjo konzole Java Navigator

Verjetno ste že prebrali o pakiranju vašega programčka z datotekami zip za izboljšanje zmogljivosti prenosa v Netscape Navigatorju (glejte Java Nasvet 21: Uporabite arhivske datoteke za hitrejše nalaganje programčka). Toda v nekaterih primerih lahko uporaba datotek zip za programčke povzroči težave z zmogljivostjo.

Recimo, da je prodajalec orodij na primer ustvaril splošen paket, ki vključuje številne funkcije - od katerih jih veliko verjetno ne boste uporabili. Vključitev vseh teh razredov v datoteko zip bo povzročila, da se bo hitro povečala z nekaj kilobajtov na stotine kilobajtov ali več, s čimer bo zanikal razlog za uporabo datoteke zip.

Za to težavo obstaja rešitev. Čeprav je nedokumentiran, brskalnik Netscape Navigator vsebuje konzolo Java (v meniju Možnosti). Ko je ta konzola odprta, se prikažejo sporočila, v katera je zapisano System.out.println iz katerega koli programa Java, ki se v vašem brskalniku izvaja.

Česar vam mati ni povedala o javanski konzoli

Uporabnikom ni očitno, da Java konzola sprejema ukaze s tipkovnice. V Navigatorju 3.0 je na voljo 10 "ravni" za odpravljanje napak (saj jih sporočilo, ki ga prikaže brskalnik), in 3 drugi ukazi na tipkovnici. S pritiskom na tipke 0, 1, 2, ..., 9 nastavite informacije o ravni odpravljanja napak, ki jih bo prikazal navidezni stroj. Pritisk tipk D, F in G bo povzročil druga dejanja, kot je opisano spodaj. V Netscape Communicator 4.0 je bilo dodanih še nekaj ukazov, vključno z ukazom za pomoč, ki opisuje ključe, ki so veljavni kot ukazi. Če pritisnete tipko "h", boste dobili dokumentacijo za nove ukaze.

Ta nasvet predstavlja vse, kar vem o uporabi ukazov na tipkovnici v konzoli Java: o tem nisem mogel najti nobene dokumentacije. Morda bodo moje ugotovitve spodbudile nekoga v Netscapeu, da dokumentira ravni odpravljanja napak in tri druge ukaze na tipkovnici.

Spoznajte ukaze na tipkovnici

Sledi opis dejanj tipk D, F in G:

  • Pritisk tipke "D" povzroči, da konzola Java prikaže informacije o vseh programčkih, ki jih naloži navidezni stroj v trenutni seji Netscape. Več kopij brskalnika Netscape, ki so hkrati odprte, si deli isto konzolo Java.

  • Pritisk tipke "F" povzroči Dokončaj klavzule zavrženega, vendar ne zbranega smeti, pomnilnika, ki ga je treba zagnati - vsaj mislim, da se to zgodi, saj obstaja ločen ključ za zbiranje smeti.

  • Pritisk tipke "G" povzroči Runtime.gc () zbiralnik smeti za zagon. Malo sem se igral z zbiralcem smeti in verjamem, da ga je treba poklicati veliko, da se očisti spomin. Čim manj časa, potrebnega za klic zbiralnika smeti, je smiselno, ker so predmeti povezani z drugimi predmeti. Če zbiralec smeti vsakič odklopi predmete na koncih drugega predmeta, lahko stopi korak skozi kup. To pomeni, da zbiralnik smeti ne porabi veliko dragocenega časa v vsaki fazi, ampak porabi veliko majhnih delov časa, ko CPU sicer ne bi bil uporabljen.

Tu je izhod, ki se prikaže v oknu konzole Java, ko pritisnete vsako od zgoraj opisanih tipk. Sporočilo o avtorskih pravicah iz brskalnika je pred izhodom ukaza na tipkovnici: "AppAccelerator (tm) 1.0.2a za Javo, različica x86. Copyright (c) 1996 Borland International. Vse pravice pridržane."

# Raven odpravljanja napak na Applet nastavljena na 0 # Raven odpravljanja napak na Applet nastavljena na 1 # Raven odpravljanja napak na Applet nastavljena na 3 # Raven odpravljanja napak na Applet nastavljena na 4 # Raven odpravljanja napak na Applet nastavljena na 5 # Raven odpravljanja napak na Applet nastavljena na 6 # Raven odpravljanja napak v programu je nastavljena na 7 # Raven odpravljanja napak v programu je nastavljena na 8 # Raven odpravljanja napak v programu je nastavljena na 9 # Izvajanje zaključka ... # Izvajanje odvoza smeti ... 

Spodaj je vključen kontrolni seznam ukrepov, ki jih lahko izvedete, da bi opisali ta nasvet.

  1. Zaženite svoj Netscape Navigator, ki podpira Java.

  2. V meniju Možnosti odprite konzolo Java.

  3. Z miško kliknite na konzolo Java.

  4. Pritisnite tipko "9" (ne tipke PF9)

  5. Pojavi se sporočilo "# Raven odpravljanja napak v programu je nastavljena na 9".

  6. Vrnite se v okno brskalnika.

  7. Naložite URL, ki vsebuje programček Java.

  8. Oglejte si, kako konzola Java prikazuje podrobnosti o programčku iz nalagalca razredov, ko se nahajajo in naložijo datoteke .class, .gif, .jpg in .zip.

Naslednji primer je vzorčni izhod, ki ga je konzola Java prikazala, ko sem naložil programček. Pritisnil sem tipko 9 in v konzoli Java se je prikazalo sporočilo "# Applet debug level set to 9".

# Raven odpravljanja napak programčka nastavljena na 9 # initApplet: contextID = 8 appletID = 17930380 parentContext = 11134828 frameContext = 11134828 # initApplet: appletID = 17930380 # total applets = 1 # Nov programček: 17930380 v datoteki: / E | / Debugger 10-06- 96 / razhroščevalec / širina = 300 višina = 45 hspace = 0 archive = datoteka: /// E | / razhroščevalec 10-06-96 / razhroščevalec / vspace = 0 align = baseline codebase = datoteka: /// E | / razhroščevalec 10 -06-96 / Debugger / code = DebuggerMain.class # startApplet: contextID = 8 appletID = 17930380 newFrameMWContext = 11134828 # startApplet: appletID = 17930380 # Poišči razred DebuggerMain # Datoteka za pridobivanje: / E | / Debugger 10-06-96 / Debugger 10-06-96 / Debugger 10-06-96 / /DebuggerMain.class # Poišči razred FocComm # Datoteka za pridobivanje: / E | / Debugger 10-06-96 / Debugger / FocComm.class # Poišči razred OpenFileThread # Datoteka za pridobivanje: / E | / Debugger 10-06-96 / Debugger / OpenFileThread .class # Applet izjema: izjema: java.lang.ClassCastException: DebuggerMain java.lang.ClassCastException: DebuggerMain

na netscape.applet.EmbeddedAppletFrame.run (prevedena koda)

na java.lang.Thread.run (prevedena koda) # Poišči razred ConnectDialog # Pridobivanje datoteke: / E | / Debugger 10-06-96 / Debugger / ConnectDialog.class # Poišči razred StreamListener # Pridobivanje datoteke: / E | / Debugger 10 -06-96 / Debugger / StreamListener.class # Poišči razred InputLinkedList # Pridobivanje datoteke: / E | / Debugger 10-06-96 / Debugger / InputLinkedList.class # Poišči razred CommunicationError # Pridobivanje datoteke: / E | / Debugger 10-06 -96 / Napaka razhroščevalnika / CommunicationError.class pri povezovanju FocusConnectjava.net.SocketException: Ni takšne datoteke ali imenika # Izjema varnosti: izhod: 0

Zgradite svojo zip datoteko

Upoštevajte, da so prikazani vsi razredi, ki jih je ustvaril moj programček. Če želite zapakirati najuspešnejšo datoteko zip, zaženite programček in izberite vse možne poti kode. Vzemite izhod, prikazan iz konzole Java za ta zagon programa, in zgradite datoteko zip, ki vsebuje samo te razrede. Ta seznam je mogoče enostavno urejati - preprosto ga izrežite iz okna konzole Java, da ustvarite seznam uporabljenih razredov.

Prikaži podrobnosti naloženih programčkov z "D"

Ukaz tipkovnice "D" ni del uglaševanja zmogljivosti, vendar ga pokrivam tukaj, ker ni nikjer dokumentiran.

Sledi rezultat vzorčne seje, ki se zgodi po pritisku na tipko "D". Pritisnil sem to tipko, da bi preučil parametre v datoteki HTML. Te informacije je mogoče dobiti tudi z ogledom vira HTML.

MozillaAppletContext # frames = 1 # images = 0 # audioClips = 0 url = file: / E | / Debugger 10-06-96 / Debugger / DebuggerMain.html EmbeddedAppletFrame id = 17930380 documentURL = file: / E | / Debugger 10-06- 96 / Debugger / DebuggerMain.html

codebaseURL = datoteka: / E | / Debugger 10-06-96 / Debugger / status = dispose

handler = Thread [Thread-1,5, applet-DebuggerMain.class]

širina = 300

višina = 45

hspace = 0

archive = datoteka: /// E | / Razhroščevalec 10-06-96 / Razhroščevalec /

vspace = 0

align = baseline

codebase = datoteka: /// E | / razhroščevalec 10-06-96 / razhroščevalec /

code = DebuggerMain.class

Zaključek

Brskalnik Netscape Navigator lahko pomaga pri razvoju vašega programčka na način, ki ga ne more nobeno drugo orodje. Nobena druga metoda ne zbira diagnostike dejanskih informacij o času izvajanja. Upam, da ta tehnika pomaga skupnosti Java pri izdelavi manjših paketov zip za aplete. Za uspeh tehnološkega modela Java potrebujemo hitrost in grafično funkcionalnost osebnega računalnika s popolnim dostopom do interneta in varnostjo glavnega računalnika. Upam, da bodo tudi drugi našli podobne tehnike, ki bodo novemu računalniškemu modelu pomagale do uspeha.

Opomba: Zasluge je treba dati Teodorju Todorovu, študentu univerze Cornell in odličnemu programerju Java. Ugotovil je, da Java konzola sprejema ukaze s tipkovnice. Za ukaze v konzoli Java v Netscape Communicator 4.0 se želim zahvaliti Alesu Omahenu na naslovu "[email protected]", ker jih je prvi našel, in Kevinu Loweju na "[email protected]" tudi za iskanje.

Peter Lenahan je tehnični direktor pri Information Builders. Trenutno sodeluje z več drugimi inženirji na korporativnem informacijskem paketu Java.

To zgodbo z naslovom "Java Nasvet 28: Izboljšajte zmogljivost prenosa vašega programčka s pomočjo konzole Java Navigator" je prvotno objavil JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found