JPype 1.0.2 update, biblioteken foar tagong ta Java-klassen fan Python

Beskikber nije release fan interlayer JPype 1.0.2, wêrtroch jo folsleine tagong kinne organisearje fan Python-applikaasjes nei Java-klassebiblioteken. Mei JPype fan Python kinne jo Java-spesifike bibleteken brûke om hybride applikaasjes te meitsjen dy't Java en Python-koade kombinearje. Oars as Jython, wurdt yntegraasje mei Java net berikt troch it oanmeitsjen fan in Python-fariant foar de JVM, mar troch ynteraksje op it nivo fan beide firtuele masines mei dielde ûnthâld. De foarstelde oanpak lit net allinich goede prestaasjes berikke, mar jout ek tagong ta alle CPython- en Java-biblioteken. Projekt Code ferspraat troch lisinsje ûnder Apache 2.0.

Grutte feroaringen:

  • In cache is tafoege oan metoade-oanroppen om overload-resolúsje te foarkommen, wat de prestaasjesynfloed fan metoade-resolúsje gâns ferminderet, benammen as deselde oerlêst in protte kearen wurdt neamd, lykas by loop-útfiering.
  • Fan 4 oant 100 kear, ôfhinklik fan it gegevenstype, wurdt de oerdracht fan listen, tuples en buffers nei arrays fan Java-primitiven fersneld. De konverzje brûkt optimalisearre ferwurking fan buffers yn it ûnthâld, ynstee fan de Sequence API. As in Python-buffer wurdt tsjinkaam, wurdt allinich it earste elemint kontrolearre foar konverzje, om't dizze buffers homogeen binne.
  • It ferwurkjen fan shutdown-operaasjes (ymplemintearre yn JPype 1.0.0, mar waard oerslein by it tarieden fan it changelog). JPype neamt no de JVM-shutdown-routine, dy't besiket sierlik út te gean. Dit liedt ta ferskate feroarings yn gedrach. Net-eftergrûnthreads (proxy-oproppen) kinne de JVM no iepen hâlde oant se klear binne. Proxy-oproppen sille ôfsluting ferwurkje oant de oprop foltôge, mar sille in ôfbrekke berjocht krije. Bestannen wurde no goed sluten en nei skiif spoeld as de diskusjes de útsûndering behannelje lykas ferwachte. Resource cleanup heakjes en finalizers wurde útfierd. As triedden wurde spawned, wurde AtExit-haken neamd. Troch de daemon wurdt automatyske thread joining ymplementearre by it brûken fan de JVM fan Python. Buggy-koade dy't it skjinmeitsjen fan thread net goed kin omgean sil wierskynlik hingje as it ôfsluten wurdt útfierd. Oanfoljende dokumintaasje is te finen yn 'e brûkershantlieding.
  • De wrapper foar Throwable krige in wrapper foar Object ynstee fan it ferwachte resultaat, wat late ta frjemde konversaasjes fan Python-klassen.
  • Typfouten repareare yn it ymportsysteem dy't resultearre yn de flater '»jname» net fûn'.
  • Soargje derfoar dat "^C" korrekt promovearre waard yn KeyboardInterrupt.
  • Fixed probleem mei symboalen sûnt Python 3.5.3. PySlice_Unpack waard yntrodusearre yn in folgjende patch-release (3.5.4) en soe net brûkt wurde moatte.
  • In flater reparearre mei numpy.linalg.inv dy't late ta in crash. It probleem is opspoard nei threadkommunikaasje tusken de JVM en guon numpige smaken. De foarstelde oplossing is om numpy.linalg.inv te skiljen foardat jo de JVM begjinne.

Boarne: opennet.ru

Add a comment