Kandidat Rilis JDK 12: Shenandoah, G1, JMH, Arm64. Bug di Swing menyerang balik

240 hari telah berlalu sejak rilis JEP 3: Proses Pelepasan JDK , dan mesin infernal untuk produksi versi baru tidak ingin berhenti. Jadi, saatnya telah tiba untuk kandidat rilis berikutnya . Ini adalah periode ketika semua jembatan dibakar, bug dengan prioritas P2-P5 sudah tidak berarti apa-apa, dan hari-hari sampai rilis dinomori.



Bug


Tidak semua bug dengan P1 prioritas ditutup. Anda dapat melihat daftar lengkap masalah di bugtracker . Dan di sini hal yang paling aneh menunggu kita: mereka semua merujuk pada Swing saat menggunakan GTKLookAndFeel.



Secara mental sudah berkata: "Tapi apa yang salah dengan orang-orang di Swing ini?" Kali ini mereka tidak “dipersalahkan”. Jika ada yang tidak tahu, Gtk adalah toolkit gratis untuk mengembangkan antarmuka grafis, terutama pada sistem operasi GNU / Linux untuk X11 dan Wayland.


Dimulai dengan Gtk 3.20, cara mereka bekerja dengan banyak gaya dan widget telah berubah . Alih-alih kelas gaya dan ketik nama, nama elemen sekarang digunakan. Gtk 3.20 dirilis pada 21 Maret 2016 , dan itu adalah rilis yang sangat besar - 28933 commit dan Wayland secara default. Secara umum, seluruh Gnome mulai terlihat sedikit berbeda.



Tidak heran Swing mungkin melupakan sesuatu dan tidak mengujinya. Sebagian bug dipindahkan dalam prioritas ke P2 dan dipindahkan ke JDK 13. Misalnya, bug ini tentang fakta bahwa Motif pada MacOS, seolah-olah, secara halus, tidak lagi seperti lingkungan grafis yang relevan:



Akan lucu jika seseorang benar-benar masih menggunakan Motif dan AWT di Habré. Saya berharap bahwa JDK kedua belas tidak akan dibatalkan karena ini, jika tidak, itu akan menjadi file epik paling di Jawa dalam semua sejarah rilis baru yang masih muda.


Fitur


JEP dalam daftar ini tidak akan didaftar menurut kepentingan, tetapi secara eksklusif dengan nomor seri. Ini agar Anda tidak tiba-tiba berpikir bahwa Shenanda dan JMH bangun karena simpati pribadi.


189: Shenandoah: Pengumpul Sampah Jeda Waktu Rendah (Eksperimental)


Akan lebih baik jika itu terjadi setahun yang lalu, dan Shenanda masuk ke LTS. Oke, tunggu - terima kasih untuk itu. Shenandoah adalah kolektor lubang rendah yang mencapai lubang rendah karena fase evakuasi multi-utas. Selain itu, jeda tidak tergantung pada ukuran pinggul, sehingga Anda dapat dengan aman membalik tumpukan terabyte pada prod.


230: Microbenchmark Suite


Suite uji berdasarkan JMH ditambahkan ke JDK, dan JMH sendiri juga. Itu terletak di jdk/jdk/test/micro/org/openjdk/bench . JMH adalah kerangka kerja untuk membuat, merakit, meluncurkan dan menganalisis microbenchmark untuk Java dan bahasa JVM lainnya, yang ditulis oleh seseorang yang Anda mengerti . JMH sekarang menjadi standar de facto untuk tolok ukur mikro, dan penampilan JEP seperti itu adalah masalah waktu.


325: Alihkan Ekspresi (Pratinjau)


Alih-alih seribu deskripsi:


 int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; }; 

334: JVM Constants API


Tujuannya adalah untuk menyediakan sekumpulan tipe untuk pemodelan formal deskripsi kelas, metode, dan entitas lain dalam runtime dan classfile dan menariknya ke kelas utama seperti String atau Class . Mereka tinggal dalam paket-paket seperti java.lang.invoke.constant dan tidak memintanya, tetapi Anda dapat melihat tambalan di sini .


340: Satu Port AArch64, Bukan Dua


Port arm64 yang lama terlempar keluar dalam cuaca dingin, tetapi ARM 32-bit dan aarch64 aktif digergaji. Terima kasih kepada RedHat dan BellSoft untuk keberadaan port ini (omong-omong, kantor BellSoft terletak di St. Petersburg, di sebelah bekas kantor Oracle). Dengan rilis JDK 12, kami akan mencoba untuk mendapatkan komentar yang lebih rinci dari perwakilan perusahaan.


341: Arsip CDS Default


Sebagai fitur, CDS sudah tersedia untuk kami sejak lama, tetapi tidak jelas mengapa setiap kali Anda menulis -Xshare:dump yourself, jika hasil default dari perintah ini sedikit dapat diprediksi bahkan pada tahap pembuatan distribusi JDK. Pengawasan yang menjengkelkan ini akan diperbaiki di JDK 12, arsip CDS akan dihasilkan oleh pembuat distribusi, bahkan untuk build malam (asalkan mereka 64-bit dan asli, bukan untuk kompilasi silang).


344: Koleksi Campuran yang Diabaikan untuk G1


Fitur ini diperlukan oleh mekanisme internal pengumpul sampah G1, sehingga lebih sering sesuai dengan persyaratan selama jeda. Kebetulan Anda dapat menentukan kapan G1 berulang kali mengevaluasi kompleksitas perakitan yang salah, terutama untuk wilayah lama. Pada titik ini, Anda bisa merasa takut dan mulai mengumpulkan secara bertahap, langkah demi langkah, dan setelah setiap langkah, dapat mengganggu perakitan. Dikatakan bahwa ini akan memungkinkan lebih cocok masuk ke waktu perakitan yang diharapkan.


346: Segera Kembalikan Memori yang Tidak Dipakai Sebelumnya dari G1


Sekarang G1 memberikan memori-komit ke sistem operasi baik dengan GC penuh, atau dengan perakitan paralel. Baik itu dan G1 lain dengan segala cara yang mungkin mencoba untuk menghindari, yang berkatnya. Tetapi ini juga berarti bahwa memori habis dimakan seolah-olah tidak dengan sendirinya, dan G1 dapat dipaksa untuk menghapus memori kembali hanya dengan beberapa cara eksternal. Ini sangat menyedihkan bagi semua buruh pelabuhan dan hipster lainnya tanpa terabyte RAM di server. Sebagai gantinya, diusulkan untuk melakukan dengan cara yang sama bahwa Shenanda atau GenCon dari OpenJ9 sudah tahu bagaimana mengidentifikasi pemanfaatan tumpukan yang tidak memadai dan karenanya mengurangi penggunaannya. Pada beberapa tes di Tomcat, ini memungkinkan untuk mengurangi konsumsi memori hampir setengahnya.


Apa selanjutnya


Ini adalah tinjauan dari atas ke bawah, dan kami akan mencoba membuat analisis terperinci tentang fitur-fitur yang lebih dekat dengan rilis dalam bentuk artikel terpisah - terjemahan JEP, screencast dengan tolok ukur, atau yang lainnya. Sekarang kita harus menunggu rilis, yang dijadwalkan 19 Maret.


Menit periklanan. Segera, pada tanggal 5-6 April, konferensi JPoint akan diadakan, yang akan mempertemukan sejumlah besar orang yang tahu banyak tentang JDK dan semua jenis fitur baru. Misalnya, pasti akan ada Simon Ritter dari Azul dengan kuliah tentang "JDK 12: Perangkap bagi yang tidak waspada" . Tempat paling tepat untuk mendiskusikan rilis terbaru! Anda dapat mempelajari lebih lanjut tentang JPoint di situs web resmi .

Source: https://habr.com/ru/post/id440314/


All Articles