Tip Java 28: Tingkatkan kinerja unduhan applet Anda menggunakan konsol Java Navigator

Anda mungkin sudah membaca tentang mengemas applet Anda menggunakan file zip untuk meningkatkan kinerja unduhan di Netscape Navigator (lihat Tip Java 21: Gunakan file arsip untuk mempercepat pemuatan applet). Tetapi dalam situasi tertentu, menggunakan file zip untuk applet dapat menyebabkan masalah kinerja.

Sebagai contoh, katakanlah vendor alat telah membuat paket umum yang menyertakan sejumlah fitur - banyak di antaranya mungkin tidak akan Anda gunakan. Memasukkan semua kelas ini dalam file zip Anda akan menyebabkannya tumbuh dengan cepat dari beberapa kilobyte menjadi ratusan kilobyte atau lebih, sehingga meniadakan alasan untuk menggunakan file zip sejak awal.

Ada solusi untuk masalah ini. Meskipun tidak berdokumen, browser Netscape Navigator berisi konsol Java (di bawah menu Opsi). Saat konsol ini terbuka, pesan muncul yang ditulis System.out.printlndari applet Java apa pun yang kebetulan berjalan di browser Anda.

Apa yang tidak diberitahukan ibumu tentang konsol Java

Apa yang tidak jelas bagi pengguna adalah bahwa konsol Java menerima perintah keyboard. Ada 10 "level" debugging (karena pesan yang ditampilkan oleh browser memberi label pada mereka) dan 3 perintah keyboard lainnya di Navigator 3.0. Menekan tombol 0, 1, 2, ..., 9 mengatur informasi tingkat debugging yang akan ditampilkan mesin virtual. Menekan tombol D, F, dan G akan menyebabkan tindakan lain, seperti yang dijelaskan di bawah ini. Di Netscape Communicator 4.0, beberapa perintah lagi telah ditambahkan, termasuk perintah bantuan yang menjelaskan kunci yang valid sebagai perintah. Jika Anda menekan tombol "h", Anda akan mendapatkan dokumentasi untuk perintah baru.

Tip ini menyajikan semua yang saya ketahui tentang penggunaan perintah keyboard di konsol Java: Saya belum dapat menemukan dokumentasi apa pun tentangnya. Mungkin temuan saya akan mendorong seseorang di Netscape untuk mendokumentasikan level debugging dan tiga perintah keyboard lainnya.

Ketahui jalan Anda di sekitar perintah keyboard

Berikut adalah deskripsi tindakan penekanan tombol D, F, dan G:

  • Tombol "D" menyebabkan konsol Java untuk menampilkan informasi tentang semua applet yang dimuat oleh mesin virtual dalam sesi Netscape saat ini. Beberapa salinan browser Netscape yang dibuka pada saat yang sama menggunakan konsol Java yang sama.

  • Tombol "F" menyebabkan Finalizeklausa memori yang dibuang, namun tidak dikumpulkan sampah, akan dijalankan - setidaknya menurut saya inilah yang terjadi, karena ada kunci terpisah untuk pengumpulan sampah.

  • Tombol "G" menyebabkan Runtime.gc()pengumpul sampah berjalan. Saya telah bermain-main sedikit dengan pengumpul sampah, dan saya yakin banyak panggilan harus dilakukan untuk membersihkan memori. Meminimalkan waktu yang dibutuhkan untuk memanggil pengumpul sampah masuk akal karena objek terkait dengan objek lain. Jika pengumpul sampah hanya membatalkan tautan objek di ujung objek lain setiap kali, ia dapat melangkah melalui heap secara bertahap. Ini berarti pengumpul sampah tidak menghabiskan banyak waktu berharga di setiap tahap tetapi menggunakan banyak potongan kecil waktu ketika CPU tidak akan digunakan.

Berikut adalah output yang ditampilkan di jendela konsol Java ketika setiap tombol yang dijelaskan di atas ditekan. Pesan hak cipta dari browser mendahului keluaran perintah keyboard: "AppAccelerator (tm) 1.0.2a untuk Java, versi x86. Hak Cipta (c) 1996 Borland International. Semua Hak Dilindungi Undang-Undang."

# Tingkat debug applet diatur ke 0 # Tingkat debug applet diatur ke 1 # Tingkat debug applet diatur ke 2 # Tingkat debug applet diatur ke 3 # Tingkat debug applet diatur ke 4 # Tingkat debug applet diatur ke 5 # Tingkat debug applet diatur ke 6 # Tingkat debug applet diatur ke 7 # Tingkat debug applet diatur ke 8 # Tingkat debug applet diatur ke 9 # Melakukan finalisasi ... # Melakukan pengumpulan sampah ... 

Daftar periksa tindakan yang dapat Anda lakukan untuk mengalami apa yang dijelaskan dalam tip ini disertakan di bawah.

  1. Luncurkan Netscape Navigator Anda yang mendukung Java.

  2. Buka konsol Java dari menu Option.

  3. Klik mouse di konsol Java.

  4. Tekan tombol "9" (bukan tombol PF9)

  5. Pesan "# Tingkat debug applet disetel ke 9" muncul.

  6. Kembali ke jendela browser.

  7. Muat URL yang berisi applet Java.

  8. Perhatikan konsol Java yang menampilkan detail applet dari class loader karena file .class, .gif, .jpg, dan .zip ditempatkan dan dimuat.

Contoh berikut adalah contoh keluaran yang ditampilkan oleh konsol Java ketika saya memuat applet. Saya menekan tombol 9 dan pesan "# Tingkat debug applet disetel ke 9" ditampilkan di konsol Java.

# Tingkat debug applet disetel ke 9 # initApplet: contextID = 8 appletID = 17930380 parentContext = 11134828 frameContext = 11134828 # initApplet: appletID = 17930380 # total applet = 1 # Applet baru: 17930380 di file: / E | / Debugger 10-06- 96 / Debugger / lebar = 300 tinggi = 45 hspace = 0 archive = file: /// E | / Debugger 10-06-96 / Debugger / vspace = 0 align = baseline codebase = file: /// E | / Debugger 10 -06-96 / Debugger / code = DebuggerMain.class # startApplet: contextID = 8 appletID = 17930380 newFrameMWContext = 11134828 # startApplet: appletID = 17930380 # Temukan kelas DebuggerMain # Mengambil file: / E | / Debugger 10-06-96 / Debugger /DebuggerMain.class # Temukan kelas FocComm # Mengambil file: / E | / Debugger 10-06-96 / Debugger / FocComm.class # Temukan kelas OpenFileThread # Mengambil file: / E | / Debugger 10-06-96 / Debugger / OpenFileThread .class # Pengecualian applet: pengecualian: java.lang.ClassCastException: DebuggerMain java.lang.ClassCastException: DebuggerMain

di netscape.applet.EmbeddedAppletFrame.run (Kode Terkompilasi)

di java.lang.Thread.run (Kode Terkompilasi) # Temukan kelas ConnectDialog # Mengambil file: / E | / Debugger 10-06-96 / Debugger / ConnectDialog.class # Temukan kelas StreamListener # Mengambil file: / E | / Debugger 10 -06-96 / Debugger / StreamListener.class # Temukan kelas InputLinkedList # Mengambil file: / E | / Debugger 10-06-96 / Debugger / InputLinkedList.class # Temukan kelas CommunicationError # Mengambil file: / E | / Debugger 10-06 -96 / Debugger / CommunicationError.class Kesalahan saat menghubungkan FocusConnectjava.net.SocketException: Tidak ada file atau direktori seperti itu # Pengecualian Keamanan: keluar: 0

Buat file zip Anda

Perhatikan bahwa semua kelas yang dipakai applet saya akan ditampilkan. Untuk mengemas file zip berkinerja terbaik, jalankan applet Anda dan pilih semua kemungkinan jalur kode. Ambil keluaran yang ditampilkan dari konsol Java untuk menjalankan applet tersebut dan buat file zip yang hanya berisi kelas-kelas ini. Daftar ini dapat diedit dengan mudah - cukup potong dari jendela konsol Java untuk membuat daftar kelas yang digunakan.

Menampilkan detail applet yang dimuat dengan "D"

Perintah keyboard "D" bukan bagian dari penyetelan kinerja, tetapi saya membahasnya di sini karena tidak didokumentasikan di mana pun.

Berikut ini adalah output dari sesi sampel yang terjadi setelah menekan tombol "D". Saya menekan tombol ini untuk memeriksa parameter yang ada di file HTML. Informasi ini juga dapat diperoleh dengan melihat sumber 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 = file: / E | / Debugger 10-06-96 / Debugger / status = buang

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

lebar = 300

tinggi = 45

hspace = 0

archive = file: /// E | / Debugger 10-06-96 / Debugger /

vspace = 0

align = baseline

codebase = file: /// E | / Debugger 10-06-96 / Debugger /

code = DebuggerMain.class

Kesimpulan

The Netscape Navigator browser can aid in the development of your applet in a way that no other tool can. No other method collects the diagnostics of actual runtime information. I hope this technique aids the Java community in producing smaller zip packages for applets. For the Java technology model to succeed we need the speed and graphical functionality of the PC, with the full data access of the Internet and the security of the mainframe. I hope others will find similar techniques to help this new computer model to succeed.

Catatan: Penghargaan harus diberikan kepada Teodor Todorov, seorang mahasiswa di Cornell University dan programmer Java yang sangat baik. Dia menemukan bahwa konsol Java menerima perintah papan tombol. Untuk perintah di konsol Java di Netscape Communicator 4.0, saya ingin berterima kasih kepada Ales Omahen di "[email protected]" untuk pertama kali menemukannya dan Kevin Lowe di "[email protected]" juga telah menemukannya.

Peter Lenahan adalah direktur teknis di Information Builders. Dia saat ini bekerja dengan beberapa insinyur lain dalam paket informasi perusahaan Java.

Kisah ini, "Tip Java 28: Tingkatkan kinerja unduhan applet Anda menggunakan konsol Java Navigator" awalnya diterbitkan oleh JavaWorld.