OpenJDK està considerant incloure l'API asíncrona Stack Trace VM 

OpenJDK

OpenJDK és la versió lliure de la plataforma de desenvolupament Java sota concepte de llenguatge orientat a objectes.

fa poc es va llançar una proposta per promoure els seguiments de la pila asincrònica a Java i que està prosperant en el procés de millora de Java dOpenJDK. Es pretén que el projecte defineixi una API AsyncGetStackTrace per recopilar seguiments de pila de forma asíncrona i incloure dades sobre Java i marcs de pila nadius.

Segons la proposta, el rendiment no es veuria afectat quan l'API no està en ús i els requisits de memòria no augmentarien significativament en comparació de l'API AsyncGetCallTrace existent. La nova API no es recomanaria per a ús en producció, ja que podria bloquejar la JVM. Els plans inclouen minimitzar els riscos de tal incident a través de proves i verificacions exhaustives.

AsyncGetCallTracees utilitzat per la majoria dels generadors de perfils disponibles, tant de codi obert com comercials, inclosos asíncron-perfilador. Però té dos grans inconvenients.

  1. aquesta és una API interna, no exportada a cap encapçalament;
  2. només retorna informació sobre els marcs de Java, és a dir, el mètode i els índexs de codi de bytes.

Aquests problemes dificulten la implementació de perfiladors i eines relacionades. Encara que es pot extreure informació addicional de HotSpot VM mitjançant un codi complex, una altra informació útil està oculta i és impossible d'obtenir:

Si un marc Java compilat és línia (actualment, només es pot obtenir per als marcs compilats més alts).

El nivell de compilació dun marc Java (és a dir, compilat per C1 o C2).
Informació sobre marcs C/C++ que no són a la part superior de la pila.

aquestes dades poden ser útils en perfilar i ajustar una màquina virtual per a una aplicació determinada, així com en perfilar codi que utilitza molt JNI.

L'API es modelaria a l'APIAsyncGetCallTrace, a més que la nova API encara no s'ha ofert per a una versió específica de Java estàndard. El proper llançament de Java és (JDK) 20, que s'espera per al març del 2023. Java té un procés formal per incorporar canvis a la plataforma que ha aconseguit respondre a les circumstàncies canviants alhora que aconsegueix un alt grau d'estabilitat.

Els generadors de perfils poden trucar a aquesta API per obtenir el seguiment de la pila per al subprocés que s'està executant actualment. Trucar a aquesta API des d'un controlador de senyals és segur i la nova implementació serà com a mínim tan estable com el codi de seguiment de pila del JFR. La màquina virtual completa la informació del marc i el recompte de marcs. La persona que truca a l'API ha d'assignar la matriu de trucades amb memòria suficient per a la profunditat de pila sol·licitada.

La màquina virtual completa l'estructura de seguiment que conté el nombre real d'imatges a la matriu d'imatges o codi d'error. Els codis derror són un subconjunt dels codis derror per AsyncGetCallTrace.

Encara que l'API proporciona més informació, l'espai requerit per marc (per exemple, 16 bytes a x86) és el mateix que per a l'APIAsyncGetCallTrace existent. La devolució d'informació sobre els marcs de C/C++ dóna com a resultat la divulgació dels detalls d'implementació, però això també és cert per als marcs de Java d'AsyncGetCallTrace ja que revelen detalls d'implementació de fitxers de biblioteca estàndard i inclouen marcs d'embolcall nadius .

Fins i tot un desenvolupador de Java experimentat pot no tenir una bona comprensió de com es desenvolupa i manté la plataforma. La principal lliçó que cal aprendre és que aquest és veritablement un procés obert.

La base del desenvolupament de Java és el Java Community Process (JCP). És una mena de document bàsic autoconscient que defineix com introduir canvis a la plataforma i també permet modificar el propi procés. La darrera versió del JCP és la 2.11, que es va adoptar el 2019.

JCP formalitza com es proposen, revisen i aproven noves característiques i canvis a Java (és a dir, especificacions tècniques), inclosa la definició de diversos rols que les persones poden ocupar. Aquests rols ajuden a proporcionar un lloc on la comunitat d'usuaris de Java pot participar al govern de la plataforma.

Per proposar noves funcionalitats i canvis, JCP permet la creació (iniciació) de Java Specification Requests (JSR). Això es fa mitjançant un formulari estandarditzat. Per accedir al formulari, cal registrar-se per obtenir un compte JCP gratuït.

A partir d'aquí, molts canvis, petits o no, arriben a les tecnologies Java que fem servir cada dia. Quan arriba un JSR, introduïu el procés de revisió de JSR. És un procés de diversos passos en què els canvis proposats al JSR es consideren gradualment amb més serietat, es modifiquen i finalment s'adopten o se suspenen.

Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.