Programmēšana

Java 28. padoms. Uzlabojiet sīklietotnes lejupielādes veiktspēju, izmantojot Navigator Java konsoli

Jūs, iespējams, jau esat lasījis par sīklietotnes iesaiņošanu, izmantojot ZIP failus, lai uzlabotu lejupielādes veiktspēju Netscape Navigator (skatiet Java 21. padomu: Izmantojiet arhīva failus, lai paātrinātu sīklietotņu ielādi). Tomēr noteiktās situācijās zip failu izmantošana sīklietotnēm var radīt veiktspējas problēmas.

Piemēram, pieņemsim, ka rīku pārdevējs ir izveidojis vispārēju pakotni, kas ietver vairākas funkcijas - daudzas no kurām jūs, iespējams, neizmantosiet. Iekļaujot visas šīs klases savā zip failā, tas strauji pieaugs no dažiem kilobaitiem līdz simtiem vai vairāk, tādējādi noliedzot iemeslu vispirms izmantot zip failu.

Šai problēmai ir risinājums. Lai gan Netscape Navigator pārlūkā nav dokumentu, tajā ir Java konsole (izvēlnē Opcijas). Kad šī konsole ir atvērta, tiek parādīti ziņojumi, uz kuriem tiek rakstīts System.out.println no jebkuras Java sīklietotnes, kas notiek jūsu pārlūkprogrammā.

Ko tava māte tev neteica par Java konsoli

Lietotājiem nav acīmredzams tas, ka Java konsole pieņem tastatūras komandas. Navigator 3.0 ir 10 atkļūdošanas "līmeņi" (kā tos apzīmē pārlūkprogrammas parādītais ziņojums) un 3 citas tastatūras komandas. Nospiežot taustiņus 0, 1, 2, ..., 9, tiek iestatīta atkļūdošanas līmeņa informācija, kuru parādīs virtuālā mašīna. Nospiežot taustiņus D, F un G, tiks veiktas citas darbības, kā aprakstīts tālāk. Netscape Communicator 4.0 ir pievienotas vēl vairākas komandas, tostarp palīdzības komanda, kas apraksta atslēgas, kas ir derīgas kā komandas. Nospiežot taustiņu "h", jūs saņemsit jauno komandu dokumentāciju.

Šis padoms parāda visu, ko zinu par tastatūras komandu lietošanu Java konsolē: man nav izdevies atrast nevienu dokumentāciju par to. Varbūt mani secinājumi mudinās kādu no Netscape dokumentēt atkļūdošanas līmeņus un trīs citas tastatūras komandas.

Pārziniet tastatūras komandas

Tālāk ir aprakstīts D, F un G taustiņu darbību:

  • "D" taustiņa nospiešana liek Java konsolei parādīt informāciju par visām sīklietotnēm, kuras pašreizējā Netscape sesijā ir ielādējusi virtuālā mašīna. Vairākas Netscape pārlūka kopijas, kas ir atvērtas vienlaikus, koplieto to pašu Java konsoli.

  • F taustiņa nospiešana izraisa Pabeigt klauzulas par izmestām, taču ne atkritumiem savāktām atmiņām, kas jāizpilda - vismaz es domāju, ka tas tā notiek, jo atkritumu savākšanai pastāv atsevišķa atslēga.

  • "G" taustiņa nospiešana izraisa Runtime.gc () atkritumu savācējs, lai palaistu. Esmu nedaudz spēlējies ar atkritumu savācēju, un es uzskatu, ka tam ir jāveic daudzi zvani, lai iztīrītu atmiņu. Samazināt laiku, kas vajadzīgs, lai izsauktu atkritumu savācēju, ir jēga, jo objekti ir saistīti ar citiem objektiem. Ja atkritumu savācējs katru reizi atvieno objektus tikai cita objekta galos, tas var pakāpeniski iziet cauri kaudzei. Tas nozīmē, ka atkritumu savācējs katrā posmā neiztērē daudz vērtīga laika, bet izmanto daudzus mazus laika gabalus, kad citādi CPU netiktu izmantots.

Šī ir izeja, kas tiek parādīta Java konsoles logā, kad tiek nospiests katrs no iepriekš aprakstītajiem taustiņiem. Pirms tastatūras komandu izejas tiek parādīts paziņojums par autortiesībām no pārlūka: "AppAccelerator (tm) 1.0.2a Java, x86 versijai. Autortiesības (c) 1996 Borland International. Visas tiesības paturētas."

# Applet atkļūdošanas līmenis iestatīts uz 0 # Applet atkļūdošanas līmenis iestatīts uz 1 # Applet atkļūdošanas līmenis ir iestatīts uz 2 # Applet atkļūdošanas līmenis ir iestatīts uz 3 # Applet atkļūdošanas līmenis ir iestatīts uz 4 # Applet atkļūdošanas līmenis ir iestatīts uz 5 # Applet atkļūdošanas līmenis ir iestatīts uz 6 # Apletu atkļūdošanas līmenis iestatīts uz 7 # Appletu atkļūdošanas līmenis ir iestatīts uz 8 # Appletu atkļūdošanas līmenis ir iestatīts uz 9 # Notiek pabeigšana ... # Atkritumu savākšana ... 

Pārbaudes saraksts ar darbībām, kuras varat veikt, lai uzzinātu, kas aprakstīts šajā padomā, ir iekļauts zemāk.

  1. Palaidiet savu Java iespējoto Netscape Navigator.

  2. Izvēlnē Opcija atveriet Java konsoli.

  3. Pele noklikšķiniet uz Java konsoles.

  4. Nospiediet taustiņu "9" (nevis taustiņu PF9)

  5. Parādās ziņojums "# Applet atkļūdošanas līmenis iestatīts uz 9".

  6. Atgriezieties pārlūkprogrammas logā.

  7. Ielādējiet URL, kurā ir Java sīklietotne.

  8. Noskatieties, kā Java konsolē tiek parādīta sīkrīka informācija no klases iekrāvēja, jo .class, .gif, .jpg un .zip faili ir izvietoti un ielādēti.

Šis piemērs ir izejas paraugs, kuru Java konsole parādīja, ielādējot sīklietotni. Es nospiedu taustiņu 9, un Java konsolē tika parādīts ziņojums "# Applet atkļūdošanas līmenis iestatīts uz 9".

# Appleta atkļūdošanas līmenis ir iestatīts uz 9 # initApplet: contextID = 8 appletID = 17930380 parentContext = 11134828 frameContext = 11134828 # initApplet: appletID = 17930380 # total applets = 1 # Jauns sīklietotne: 17930380 failā: / E | / Atkļūdotājs 10-06- 96 / atkļūdotājs / platums = 300 augstums = 45 hspace = 0 arhīvs = fails: /// E | / atkļūdotājs 10-06-96 / atkļūdotājs / vspace = 0 izlīdzināt = bāzes līnijas koda = fails: /// E | / atkļūdotājs 10 -06-96 / Debugger / code = DebuggerMain.class # startApplet: contextID = 8 appletID = 17930380 newFrameMWContext = 11134828 # startApplet: appletID = 17930380 # Atrast klasi DebuggerMain # Faila ielāde: / E | / Atkļūdotājs 10-06-96 /DebuggerMain.class # Klases atrašana FocComm # Faila ielāde: / E | / Atkļūdotājs 10-06-96 / Atkļūdotājs / FocComm.class # Klases atrašana OpenFileThread # Faila ielāde: / E | / Atkļūdotājs 10-06-96 / Atkļūdotājs / OpenFileThread .class # Applet izņēmums: izņēmums: java.lang.ClassCastException: DebuggerMain java.lang.ClassCastException: DebuggerMain

vietnē netscape.applet.EmbeddedAppletFrame.run (sastādīts kods)

vietnē java.lang.Thread.run (sastādīts kods) # Atrast klasi ConnectDialog # Faila ielāde: / E | / Atkļūdotājs 10-06-96 / Atkļūdotājs / ConnectDialog.class # Klases atrašana StreamListener # Faila ielāde: / E | / Atkļūdotājs 10 -06-96 / Atkļūdotājs / StreamListener.class # Klases atrašana InputLinkedList # Faila ienešana: / E | / Atkļūdotājs 10-06-96 / Atkļūdotājs / InputLinkedList.class # Klases atrašana -96 / Atkļūdotājs / CommunicationError.class Kļūda savienojot FocusConnectjava.net.SocketException: Nav šāda faila vai direktorija # Drošības izņēmums: iziet: 0

Izveidojiet savu zip failu

Ievērojiet, ka tiek parādītas visas klases, kuras mana sīklietotne ir izveidojusi. Lai iesaiņotu zip failu ar vislabāko veiktspēju, palaidiet sīklietotni un atlasiet visus iespējamos koda ceļus. Paņemiet izlaidi, kas parādīta Java konsolē šai sīklietotnes palaišanai, un izveidojiet zip failu, kurā ir tikai šīs klases. Šo sarakstu var viegli rediģēt - vienkārši izgrieziet to no Java konsoles loga, lai izveidotu izmantoto klašu sarakstu.

Parādīt informāciju par ielādētajām sīklietotnēm ar "D"

"D" tastatūras komanda nav daļa no veiktspējas regulēšanas, taču es to šeit aplūkoju, jo tā nekur nav dokumentēta.

Šis ir parauga sesijas rezultāts, kas notiek pēc taustiņa "D" nospiešanas. Es nospiedu šo taustiņu, lai pārbaudītu parametrus, kas bija HTML failā. Šo informāciju varēja iegūt arī, aplūkojot HTML avotu.

MozillaAppletContext # frames = 1 # images = 0 # audioClips = 0 url = file: / E | / Atkļūdotājs 10-06-96 / Debugger / DebuggerMain.html EmbeddedAppletFrame id = 17930380 documentURL = fails: / E | / Atkļūdotājs 10-06- 96 / Atkļūdotājs / DebuggerMain.html

codebaseURL = fails: / E | / Atkļūdotājs 10-06-96 / Atkļūdotājs / status = iznīcināt

apdarinātājs = Thread [Thread-1,5, applet-DebuggerMain.class]

platums = 300

augstums = 45

hspace = 0

arhīvs = fails: /// E | / Atkļūdotājs 10-06-96 / Atkļūdotājs /

vspace = 0

izlīdzināt = bāzes līnija

codebase = fails: /// E | / Atkļūdotājs 10-06-96 / Atkļūdotājs /

kods = DebuggerMain.class

Secinājums

Netscape Navigator pārlūks var palīdzēt attīstīt jūsu sīklietotni tā, kā to nevar darīt neviens cits rīks. Neviena cita metode neapkopo faktiskās izpildlaika informācijas diagnostiku. Es ceru, ka šī metode palīdz Java kopienai izveidot mazākus zip pakotnes sīklietotnēm. Lai Java tehnoloģiju modelis gūtu panākumus, mums ir nepieciešams datora ātrums un grafiskā funkcionalitāte, nodrošinot pilnu piekļuvi internetam un lieldatora drošību. Es ceru, ka citi atradīs līdzīgas metodes, lai palīdzētu šim jaunajam datora modelim gūt panākumus.

Piezīme: Kredīts jāpiešķir Teodoram Todorovam, Kornela universitātes studentam un izcilam Java programmētājam. Viņš atklāja, ka Java konsole pieņem tastatūras komandas. Par komandām Netscape Communicator 4.0 Java konsolē es vēlos pateikties Ales Omahen vietnē "[email protected]" par viņu pirmo atrašanu un Kevinam Lowe vietnē "[email protected]" arī par to atrašanu.

Pīters Lenahans ir informācijas veidotāju tehniskais direktors. Pašlaik viņš strādā ar vairākiem citiem inženieriem pie Java korporatīvās informācijas paketes.

Šo stāstu “Java padoms 28: Uzlabojiet sīklietotnes lejupielādes veiktspēju, izmantojot Navigator Java konsoli” sākotnēji publicēja JavaWorld.

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