Uppdatering av JPype 1.0.2, ett bibliotek för Ätkomst till Java-klasser frÄn Python

TillgÀnglig ny utgÄva av lager JPype 1.0.2, som möjliggör full Ätkomst för Python-applikationer till Java-bibliotek. Med JPype kan Python anvÀnda specifika Java-bibliotek, vilket skapar hybridapplikationer som kombinerar kod i Java och Python. Till skillnad frÄn Jython uppnÄs integrationen med Java inte genom att skapa en variant av Python för JVM, utan genom interaktion pÄ nivÄn av bÄda virtuella maskiner, med anvÀndning av delad minne. Den föreslagna metoden gör det möjligt att uppnÄ hög prestanda samt ger tillgÄng till alla bibliotek i CPython och Java. Projektkoden sprids Àr licensierad under Apache 2.0.

Huvudsakliga förÀndringar:

  • En cache har lagts till vid anrop av metoder, vilket gör att vi kan undvika att lösa överlastningar, vilket avsevĂ€rt minskar pĂ„verkan pĂ„ prestandan vid metodupplösning, sĂ€rskilt om samma överlastning anropas mĂ„nga gĂ„nger, som under körning av loopar.
  • Överföringen av listor, tuple och buffrar till Java-primitive arrayer har blivit mellan 4 och 100 gĂ„nger snabbare, beroende pĂ„ datatyp. Omvandlingen anvĂ€nder en optimerad hantering av buffrar i minnet istĂ€llet för Sequence API. NĂ€r Python-bufferten möts, kontrolleras endast det första elementet för omvandling, eftersom datan i buffrarna Ă€r homogen.
  • Hantera shutdown-operationer (implementerat redan i JPype 1.0.0, men missades vid förberedelse av Ă€ndringslistan). JPype kallar nu shutdown-proceduren för JVM, som försöker genomföra en utgĂ„ng pĂ„ ett 'gracefully' sĂ€tt. Detta medför flera förĂ€ndringar i beteendet. icke-bakgrundstrĂ„dar (proxy-anrop) kan nu hĂ„lla JVM öppen tills de avslutas. Proxy-anrop kommer att hantera shutdown sĂ„ lĂ€nge anropet inte Ă€r avslutat, men fĂ„ ett avbrottsmeddelande. Filer stĂ€ngs nu korrekt och spolar data till disk (flush), om trĂ„darna hanterar undantaget pĂ„ rĂ€tt sĂ€tt. Rensningshookar och finalizers genomförs. Vid skapande av trĂ„dar anropas AtExit-hooks. Genom demon implementeras automatisk sammanfogning av trĂ„dar nĂ€r JVM anvĂ€nds frĂ„n Python. Felaktig kod som inte korrekt kan hantera rensning av trĂ„dar kommer troligen att hĂ€nga vid utförande av shutdown. Ytterligare dokumentation finns i bruksanvisningen.
  • Inslaget för Throwable fick en inslagning för Object istĂ€llet för det förvĂ€ntade resultatet, vilket ledde till konstiga omvandlingar frĂ„n Python-klasser.
  • Stavfel i import-systemet har Ă„tgĂ€rdats, vilket ledde till att felet '»jname» not found' visades.
  • Korrekt överföring av ' ^C ' i KeyboardInterrupt sĂ€kerstĂ€lld.
  • Problemet med tecken med Python 3.5.3 har Ă„tgĂ€rdats. PySlice_Unpack introducerades i den efterföljande patch-utgĂ„van (3.5.4) och borde inte ha anvĂ€nts.
  • Ett problem med numpy.linalg.inv som ledde till krasch har Ă„tgĂ€rdats. Problemet spĂ„rades till trĂ„dinteraktion mellan JVM och vissa versioner av numpy. Det föreslagna lösningen Ă€r att anropa numpy.linalg.inv före körningen av JVM.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster