nei Verëffentlechung vun Interlayer , wat Iech erlaabt de vollen Zougang vu Python Uwendungen op Java Klassebibliothéiken z'organiséieren. Mat JPype vu Python kënnt Dir Java-spezifesch Bibliothéike benotze fir Hybridapplikatiounen ze kreéieren déi Java a Python Code kombinéieren. Am Géigesaz zu Jython gëtt d'Integratioun mat Java net erreecht duerch d'Schafung vun enger Python Variant fir den JVM, mee duerch Interaktioun um Niveau vu béide virtuelle Maschinnen mat gemeinsame Gedächtnis. Déi proposéiert Approche erlaabt net nëmmen eng gutt Leeschtung ze erreechen, awer och Zougang zu all CPython an Java Bibliothéiken. Projet Code lizenzéiert ënner Apache 2.0.
Main Ännerungen:
- E Cache gouf op Methode rifft bäigefüügt fir Iwwerlaaschtléisung ze vermeiden, wat d'Performance Impakt vun der Method Resolutioun staark reduzéiert, besonnesch wann déiselwecht Iwwerlaascht vill Mol genannt gëtt, wéi während der Loop Ausféierung.
- Vu 4 bis 100 Mol, ofhängeg vun der Datentyp, gëtt den Transfer vu Lëschten, Tupelen a Pufferen op Arrays vu Java Primitiv beschleunegt. D'Konversioun benotzt optimiséiert Veraarbechtung vun In-Memory Puffer, amplaz vun der Sequence API. Wann e Python-Puffer begéint gëtt, gëtt nëmmen dat éischt Element fir d'Konversioun gepréift, well dës Puffer homogen sinn.
- Veraarbechtung vun Shutdown-Operatiounen (implementéiert an JPype 1.0.0, awer gouf iwwersprongen beim Virbereedung vum Changelog). JPype nennt elo d'JVM Shutdown Routine, déi probéiert graziéis erauszekommen. Dëst féiert zu e puer Ännerungen am Verhalen. Net-Hannergrond thread (Proxy Uruff) kënnen elo de JVM oppen halen bis se fäerdeg sinn. Proxy Appellen wäerten de Shutdown veraarbecht bis den Uruff ofgeschloss ass, awer kréien en Ofbriechen Message. D'Dateie ginn elo richteg zougemaach an op Disk gespullt wann d'Threads d'Ausnam behandelen wéi erwaart. Ressource Cleanup Haken a Finaliséierer ginn ausgefouert. Wann Threads gespaut ginn, ginn AtExit Haken genannt. Duerch den Daemon gëtt automatesch Fuedemverbindung implementéiert wann Dir de JVM vum Python benotzt. Buggy Code deen d'Thread Cleanup net richteg handhaben kann hänkt wahrscheinlech wann de Shutdown ausgefouert gëtt. Zousätzlech Dokumentatioun kann am Benotzer manuell fonnt ginn.
- De Wrapper fir Throwable krut e Wrapper fir Object anstatt dat erwaart Resultat, wat zu komeschen Konversioune vu Python Klassen gefouert huet.
- Schreiffehler am Importsystem fixéiert, déi zu de Feeler '»jname» net fonnt hunn.
- Assuréiert datt "^C" korrekt an KeyboardInterrupt gefördert gouf.
- Fix Problem mat Symboler zënter Python 3.5.3. PySlice_Unpack gouf an enger spéider Patch Verëffentlechung (3.5.4) agefouert a sollt net benotzt ginn.
- E Feeler mat numpy.linalg.inv fixéiert deen zu engem Crash gefouert huet. D'Thema gouf verfollegt op thread Kommunikatioun tëscht dem JVM an e puer numpy Goûten. Déi proposéiert Léisung ass numpy.linalg.inv ze ruffen ier Dir de JVM starten.
Source: opennet.ru
