JPype 1.0.2 uuendus, raamatukogu Java klasside juurde pääsemiseks Pythonist.

Saadaval uus versioon vahelehest JPype 1.0.2, mis võimaldab Python-i rakendustel täielikku juurdepääsu Java keele klasside libraritele. JPype abil saab Pythonis kasutada Java-spetsiifilisi teeke, luues hübriidrakendusi, mis ühendavad Java ja Python koodi. Erinevalt Jythonist saavutatakse Java integreerimine mitte JVM-i jaoks Python variandi loomise kaudu, vaid kahe virtuaalmasina tasandil, kasutades jagatud mälu. Pakutud lähenemine võimaldab mitte ainult head jõudlust saavutada, vaid annab ka juurdepääsu kõigile CPython ja Java teekidele. Projekti kood GNU Üldine Avaliku litsentsi alusel. ainekood on litsentsitud Apache 2.0 all.

Peamised muudatused:

  • Meetodite kutsumist on lisatud cache, mis aitab vältida ülekoormuste lahendamist, vähendades seeläbi meetodite lahendamise jõudlusele avaldatavat mõju, eriti kui sama ülekormust kutsutakse mitu korda, näiteks tsüklite käigus.
  • Neljast sada korda, sõltuvalt andmetüübist, on kiirendatud loendite, tupikute ja puhverdatud andmete edastamine Java primitiivmasse. Muundamine kasutab optimeeritud puhvrite töötlemist mälus, mitte Sequence API-d. Kui Python-puhver esineb, kontrollitakse muundamiseks ainult esimest elementi, kuna andmebuffersid on ühtekuuluvad.
  • Shutdown-operatsioonide töötlemine (teostatud juba JPype 1.0.0-s, kuid jäi muutuste loendis tähelepanuta). JPype kutsub nüüd JVM-i shutdown-protseduuri, mille eesmärk on proovida lahku minna 'gracefully' režiimis. See toob kaasa mitmeid käitumise muudatusi. Mitte taustniidid (proxy call) võivad nüüd hoida JVM-i avatuna, kuni need on lõpetatud. Proxy-kutsed käitlevad shutdown'i seni, kuni kutse on lõpule viidud, kuid saavad katkestamise sõnumi. Failid suletakse nagu peab ja andmed kirjutatakse kettale (flush), kui niidid käitlevad erandeid vajalikul viisil. Ressursside puhastamise hooks ja finaliseerijad viiakse ellu. Niiditegamisel kutsutakse AtExit-hooks. Demoni kaudu on realiseeritud automaatne niitide liitmine, kui JVM-i kasutatakse Pythonist. Vigane kood, mis ei suuda õigesti puhastada niiti, tõenäoliselt hangub shutdown'i käigus. Lisadokumendid on saadaval kasutusjuhendis.
  • Throwable'i pakend sai Object'i pakendi asemel eeldatava tulemuse, mis viis kummaliste muundamisteni Python'i klassidest.
  • Parandatud trükivead impordisüsteemis, mis viisid vea "jname not found" tekkimiseni.
  • Tagatud on 'C' edasiviimine KeyboardInterrupt-is.
  • Parandatud probleem Python 3.5.3-s. PySlice_Unpack on sisse viidud hilisemasse patch-vabastusse (3.5.4) ja seda ei tohiks kasutada.
  • Parandatud numpy.linalg.inv-i probleem, mis viis kokku kukkumiseni. Probleem jälgiti JVM-i ja võimalike numpy variantide vahelise lõimekoostoime juurde. Soovitatud lahendus on kutsuda numpy.linalg.inv enne JVM-i käivitamist.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster