Ohjelmointi

Java-vinkki 28: Paranna sovelman lataustehoa Navigatorin Java-konsolilla

Olet luultavasti jo lukenut sovelman pakkaamisesta zip-tiedostoilla latauksen suorituskyvyn parantamiseksi Netscape Navigatorissa (katso Java-vinkki 21: Käytä arkistotiedostoja appletien lataamisen nopeuttamiseksi). Mutta tietyissä tilanteissa zip-tiedostojen käyttäminen sovelmille voi johtaa suorituskykyongelmiin.

Oletetaan esimerkiksi, että työkalujen toimittaja on luonut yleisen paketin, joka sisältää useita ominaisuuksia - joista monia et todennäköisesti käytä. Kaikkien näiden luokkien sisällyttäminen zip-tiedostoosi saa sen kasvamaan nopeasti muutamasta kilotavusta satoihin kilotavuihin tai enemmän, mikä täten hylkää syyn käyttää zip-tiedostoa.

Tähän ongelmaan on ratkaisu. Vaikka Netscape Navigator -selain ei ole dokumentoitu, se sisältää Java-konsolin (Asetukset-valikossa). Kun tämä konsoli on auki, näyttöön tulee viesti, johon kirjoitetaan System.out.println mistä tahansa Java-sovelmasta sattuu olemaan käynnissä selaimessasi.

Mitä äitisi ei kertonut sinulle Java-konsolista

Käyttäjille ei ole selvää, että Java-konsoli hyväksyy näppäimistökomennot. Navigator 3.0: ssa on 10 virheenkorjaus "tasoa" (koska selaimen näyttämä viesti merkitsee ne) ja 3 muuta näppäinkomentoa. Näppäinten 0, 1, 2, ..., 9 painaminen asettaa virheenkorjaustason tiedot, jotka virtuaalikone näyttää. Näppäinten D, F ja G painaminen aiheuttaa muita toimia, kuten alla on kuvattu. Netscape Communicator 4.0 -sovelluksessa on lisätty useita muita komentoja, mukaan lukien ohjekomento, joka kuvaa komentoina kelvollisia avaimia. Jos painat "h" -näppäintä, saat ohjeet uusille komennoille.

Tämä vinkki esittelee kaiken, mitä tiedän näppäimistökomentojen käytöstä Java-konsolissa: En ole löytänyt siitä mitään dokumentaatiota. Ehkä havainnot kannustavat joku Netscape-palvelussa dokumentoimaan virheenkorjaustasot ja kolme muuta näppäimistökomentoa.

Tunne tietäsi näppäimistökomennoista

Seuraava on kuvaus D-, F- ja G-näppäintoiminnoista:

  • "D" -näppäin saa Java-konsolin näyttämään tietoja kaikista nykyisen Netscape-istunnon virtuaalikoneen lataamista sovelmista. Useat samanaikaisesti auki olevat Netscape-selaimen kopiot jakavat saman Java-konsolin.

  • "F" -näppäin aiheuttaa Viimeistele lausekkeet käytöstä poistetusta, mutta silti jätteen keräämättömästä muistista, joka on suoritettava - ainakin luulen, että näin tapahtuu, koska roskien keräykseen on olemassa erillinen avain.

  • "G" -näppäin aiheuttaa Runtime.gc () roskien kerääjä juosta. Olen pelannut vähän jätteiden keräilijän kanssa, ja mielestäni siihen on soitettava useita puheluja muistin puhdistamiseksi. Roskakeräilijän soittamiseen kuluvan ajan minimointi on järkevää, koska esineet ovat yhteydessä muihin esineisiin. Jos roskien kerääjä vain linkittää esineitä toisen objektin päihin joka kerta, se voi astua kasan läpi vaiheittain. Tämä tarkoittaa, että roskien keräilijä ei kuluta paljon arvokasta aikaa kussakin vaiheessa, mutta käyttää monia pieniä palasia, kun prosessoria muuten ei käytettäisi.

Tässä on tulos, joka näkyy Java-konsoli-ikkunassa, kun kutakin yllä kuvattua näppäintä painetaan. Selaimen tekijänoikeusviesti edeltää näppäimistön komentokomennon: "AppAccelerator (tm) 1.0.2a Java, x86-versio. Copyright (c) 1996 Borland International. Kaikki oikeudet pidätetään."

# Appletien virheenkorjaustaso asetettu 0 # Appletien virheenkorjaustaso asetettu 1 # Appletien virheenkorjaustaso asetettu 2 # Appletien virheenkorjaustaso asetettu 3 # Appletien virheenkorjaustaso asetettu 4 # Appletien virheenkorjaustaso asetettu 5 # Appletien virheenkorjaustaso asetettu 5 # Appletien virheenkorjaustaso asetettu 6 # Applet-virheenkorjaustasoksi asetettu 7 # Applet-virheenkorjaustasoksi asetettu 8 # Applet-virheenkorjaustasoksi asetettu 9 # Viimeistely suoritetaan ... # Roskakorin suorittaminen ... 

Seuraavassa on tarkistuslista toimista, joita voit tehdä kokeaksesi tässä vinkissä kuvatun.

  1. Käynnistä Java-yhteensopiva Netscape Navigator.

  2. Avaa Java-konsoli Option-valikosta.

  3. Napsauta hiirtä Java-konsolissa.

  4. Paina "9" -näppäintä (ei PF9-näppäintä)

  5. Näyttöön tulee viesti "# Applet debug level set to 9".

  6. Palaa selainikkunaan.

  7. Lataa URL-osoite, joka sisältää Java-sovelman.

  8. Katso, että Java-konsoli näyttää luokan lataimen sovelman yksityiskohdat, kun .class-, .gif-, .jpg- ja .zip-tiedostot sijaitsevat ja ladataan.

Seuraava esimerkki on esimerkkilähtö, jonka Java-konsoli näytti, kun ladasin sovelman. Painin 9-näppäintä ja viesti "# Applet debug level set to 9" ilmestyi Java-konsoliin.

# Applet-virheenkorjaustaso asetettu arvoon 9 # initApplet: contextID = 8 appletID = 17930380 parentContext = 11134828 frameContext = 11134828 # initApplet: appletID = 17930380 # applet = 1 # Uusi appletti: 17930380 tiedostossa: / E | / Debugger 10-06- 96 / Debugger / width = 300 height = 45 hspace = 0 archive = file: /// E | / Debugger 10-06-96 / Debugger / vspace = 0 tasaus = perustason koodikanta = tiedosto: /// E | / Debugger 10 -06-96 / Debugger / code = DebuggerMain.class # startApplet: contextID = 8 appletID = 17930380 newFrameMWContext = 11134828 # startApplet: appletID = 17930380 # Etsi luokka DebuggerMain # Hakemistotiedosto: / E | / Debugger 10-06-96 /DebuggerMain.class # Etsi luokan FocComm # Tiedoston haku: / E | / Debugger 10-06-96 / Debugger / FocComm.class # Etsi luokka OpenFileThread # Tiedoston haku: / E | / Debugger 10-06-96 / Debugger / OpenFileThread .class # Applet-poikkeus: poikkeus: java.lang.ClassCastException: DebuggerMain java.lang.ClassCastException: DebuggerMain

osoitteessa netscape.applet.EmbeddedAppletFrame.run (käännetty koodi)

osoitteessa java.lang.Thread.run (käännetty koodi) # Etsi luokka ConnectDialog # Tiedoston haku: / E | / Debugger 10-06-96 / Debugger / ConnectDialog.class # Etsi luokka StreamListener # Tiedoston haku: / E | / Debugger 10 -06-96 / Debugger / StreamListener.class # Etsi luokka InputLinkedList # Tiedoston haku: / E | / Debugger 10-06-96 / Debugger / InputLinkedList.class # Etsi luokka CommunicationError # Haetaan tiedosto: / E | / Debugger 10-06 -96 / Debugger / CommunicationError.class Virhe yhdistettäessä FocusConnectjava.net.SocketException: Ei tällaista tiedostoa tai hakemistoa # Suojauspoikkeus: exit: 0

Luo zip-tiedosto

Huomaa, että kaikki luokat, jotka sovellukseni ovat käynnistäneet, näytetään. Pakataksesi parhaiten toimivan zip-tiedoston, suorita sovelma ja valitse kaikki mahdolliset koodipolut. Ota Java-konsolista näkyvä ulostulo kyseiselle sovelman ajamiselle ja rakenna vain nämä luokat sisältävä zip-tiedosto. Tätä luetteloa voidaan muokata helposti - leikkaa se vain Java-konsoli-ikkunasta luodaksesi luettelon käytetyistä luokista.

Näytä ladattujen sovelmien tiedot, joissa on "D"

"D" -näppäimistökomento ei ole osa suorituskyvyn viritystä, mutta katan sen tässä, koska sitä ei ole dokumentoitu missään.

Seuraava on näytesession tulos, joka tapahtuu "D" -näppäimen painamisen jälkeen. Painin tätä näppäintä tutkiakseen HTML-tiedostossa olevia parametreja. Nämä tiedot voidaan saada myös katsomalla HTML-lähdettä.

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

codebaseURL = tiedosto: / E | / virheenkorjaus 10-06-96 / virheenkorjaus / status = hävitä

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

leveys = 300

korkeus = 45

hspace = 0

arkisto = tiedosto: /// E | / virheenkorjaus 10-06-96 / virheenkorjaus /

vspace = 0

tasaa = lähtötaso

codebase = tiedosto: /// E | / virheenkorjaus 10-06-96 / virheenkorjaus /

code = DebuggerMain.class

Johtopäätös

Netscape Navigator -selain voi auttaa sovelman kehittämisessä tavalla, jota mikään muu työkalu ei voi. Mikään muu menetelmä ei kerää todellisen ajonaikaisen tiedon diagnostiikkaa. Toivon, että tämä tekniikka auttaa Java-yhteisöä tuottamaan pienempiä zip-paketteja sovelmille. Jotta Java-tekniikkamalli onnistuisi, tarvitsemme tietokoneen nopeuden ja graafisen toimivuuden, Internetin täyden pääsyn tietoihin ja keskusyksikön suojauksen. Toivon, että muut löytävät samanlaisia ​​tekniikoita tämän uuden tietokonemallin onnistumiseksi.

merkintä: Tunnustus on myönnettävä Teodor Todoroville, Cornellin yliopiston opiskelijalle ja erinomaiselle Java-ohjelmoijalle. Hän huomasi, että Java-konsoli hyväksyy näppäimistökomennot. Netscape Communicator 4.0: n Java-konsolin komennoista haluan kiittää Ales Omahenia osoitteessa "[email protected]" heidän löytämisestä ensin ja Kevin Lowea osoitteesta "[email protected]" myös niiden löytämisestä.

Peter Lenahan on Information Buildersin tekninen johtaja. Hän työskentelee parhaillaan useiden muiden insinöörien kanssa Java-yritystietopaketissa.

Tämän tarinan "Java Tip 28: Paranna sovelman lataustehoa Navigatorin Java-konsolilla" julkaisi alun perin JavaWorld.