OpenJDK sedang mempertimbangkan untuk memasukkan VM Stack Trace API tak segerak 

BukaJDK

OpenJDK ialah versi percuma platform pembangunan Java di bawah konsep bahasa berorientasikan objek.

Baru-baru ini cadangan telah dikeluarkan untuk mempromosikan surih tindanan tak segerak di Java dan ia berkembang maju dalam proses peningkatan Java OpenJDK. Projek ini bertujuan untuk mentakrifkan API AsyncGetStackTrace untuk mengumpul surih tindanan secara tidak segerak dan memasukkan data tentang Java dan rangka kerja tindanan asli.

Menurut cadangan itu, prestasi tidak akan terjejas apabila API tidak digunakan dan keperluan memori tidak akan meningkat dengan ketara berbanding dengan API AsyncGetCallTrace sedia ada. API baharu tidak akan disyorkan untuk kegunaan pengeluaran kerana ia boleh merosakkan JVM. Pelan termasuk meminimumkan risiko kejadian sedemikian melalui ujian dan pengesahan yang meluas.

AsyncGetCallTrace digunakan oleh kebanyakan penjana profil yang tersedia, sumber terbuka dan komersial, termasuk async-profiler. Tetapi ia mempunyai dua kelemahan besar.

  1. ini ialah API dalaman, tidak dieksport dalam mana-mana pengepala;
  2. ia hanya mengembalikan maklumat tentang bingkai Java, iaitu kaedah dan indeks kod baitnya.

Isu ini menyukarkan untuk melaksanakan pemprofil dan alatan yang berkaitan. Walaupun maklumat tambahan boleh diekstrak daripada HotSpot VM melalui kod kompleks, maklumat berguna lain tersembunyi dan mustahil untuk diperoleh:

Sama ada rangka kerja Java yang disusun adalah dalam talian (pada masa ini hanya boleh diperolehi untuk rangka kerja yang disusun lebih tinggi).

Tahap binaan rangka kerja Java (iaitu, disusun oleh C1 atau C2).
Maklumat tentang rangka kerja C/C++ yang tidak berada di bahagian atas timbunan.

Tarikh-tarikh ini boleh berguna semasa memprofil dan menala mesin maya untuk aplikasi tertentu, dan juga apabila membuat profil kod yang menggunakan banyak JNI.

API akan dimodelkan pada APIAsyncGetCallTrace, Selain itu, API baharu belum lagi ditawarkan untuk versi tertentu standard Java. Keluaran Java seterusnya ialah (JDK) 20, yang dijangkakan pada Mac 2023. Java mempunyai proses formal untuk menggabungkan perubahan platform yang telah berjaya bertindak balas terhadap perubahan keadaan sambil mencapai tahap kestabilan yang tinggi.

Pemprofil boleh memanggil API ini untuk mendapatkan surih tindanan bagi urutan yang sedang dilaksanakan. Memanggil API ini daripada pengendali isyarat adalah selamat dan pelaksanaan baharu akan sekurang-kurangnya sama stabilnya dengan kod surih tindanan JFR. Mesin maya mengisi maklumat bingkai dan kiraan bingkai. Pemanggil API mesti memperuntukkan tatasusunan panggilan dengan memori yang mencukupi untuk kedalaman tindanan yang diminta.

Mesin maya melengkapkan struktur surih yang mengandungi bilangan sebenar imej dalam tatasusunan imej atau kod ralat. Kod ralat ialah subset kod ralat untuk AsyncGetCallTrace.

Walaupun API menyediakan lebih banyak maklumat, ruang yang diperlukan setiap bingkai (contohnya, 16 bait pada x86) adalah sama seperti APIAsyncGetCallTrace sedia ada. Mengembalikan maklumat tentang rangka kerja C/C++ menghasilkan pendedahan butiran pelaksanaan, tetapi ini juga berlaku untuk rangka kerja Java AsyncGetCallTrace kerana ia mendedahkan butiran pelaksanaan fail perpustakaan standard dan termasuk rangka kerja pembalut asli .

Malah pembangun Java yang berpengalaman mungkin tidak mempunyai pemahaman yang baik bagaimana platform dibangunkan dan diselenggara. Pengajaran utama yang perlu dipelajari ialah ini benar-benar proses yang terbuka.

Asas pembangunan Java ialah Java Community Process (JCP). Ia adalah sejenis dokumen asas sedar diri yang mentakrifkan cara memperkenalkan perubahan dalam platform dan juga membenarkan untuk mengubah suai proses itu sendiri. Versi terkini JCP ialah 2.11, yang telah diterima pakai pada 2019.

JCP memformalkan cara ciri dan perubahan baharu dalam Java dicadangkan, disemak dan diluluskan. (iaitu spesifikasi teknikal), termasuk definisi pelbagai peranan yang boleh diduduki orang. Peranan ini membantu menyediakan tempat di mana komuniti pengguna Java boleh mengambil bahagian dalam tadbir urus platform.

Untuk mencadangkan fungsi dan perubahan baharu, JCP membenarkan penciptaan ("permulaan") Permintaan Spesifikasi Java (JSR). Ini dilakukan melalui bentuk piawai. Untuk mengakses borang, anda mesti mendaftar untuk akaun JCP percuma.

Dari situ, banyak perubahan, kecil atau tidak, datang kepada teknologi Java yang kita gunakan setiap hari. Apabila JSR tiba, ia memasuki proses semakan JSR. Ia merupakan proses pelbagai langkah di mana perubahan yang dicadangkan dalam JSR secara beransur-ansur dianggap lebih serius, diubah suai dan akhirnya diterima pakai atau dihentikan.

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak perinciannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.