JPype 1.0.2 eguneratzea, Python-etik Java klaseetara sartzeko liburutegia

Eskuragarri Intergeruzen bertsio berria JPype 1.0.2, eta horri esker, Python aplikazioei Java lengoaian klase-liburutegietarako sarbide osoa izan dezakete. Python-eko JPype-rekin, Javarako berariazko liburutegiak erabil ditzakezu Java eta Python kodea konbinatzen duten aplikazio hibridoak sortzeko. Jython-ek ez bezala, Java-rekin integratzea ez da JVMrako Python aldaera bat sortzearen bidez lortzen, memoria partekatua erabiliz bi makina birtualen mailan elkarreraginaren bidez baizik. Proposatutako ikuspegiak errendimendu ona lortzeaz gain, CPython eta Java liburutegi guztietarako sarbidea ere ematen du. Proiektuaren kodea arabera banatuta Apache 2.0 lizentziapean.

Aldaketa nagusiak:

  • Metodoen deietan cache bat gehitu da gainkargaren ebazpena saihesteko, eta horrek asko murrizten du metodoen ebazpenaren errendimenduaren eragina, batez ere gainkarga bera askotan deitzen bada, begizta exekuzioan bezala.
  • 4tik 100 aldiz, datu-motaren arabera, zerrendak, tuplak eta buffer-ak Java primitiboen arrayetara transferitzea bizkortzen da. Bihurketak memoriako bufferen prozesamendu optimizatua erabiltzen du, Sequence APIaren ordez. Python-en buffer bat aurkitzen denean, lehen elementua bakarrik egiaztatzen da bihurketa, buffer horiek homogeneoak baitira.
  • Itzali eragiketak prozesatzen (JPype 1.0.0-n inplementatuta, baina saltatu egin zen aldaketa-erregistroa prestatzerakoan). JPype-k JVM itzaltzeko errutinari deitzen dio orain, dotore irteten saiatzen dena. Horrek portaeran hainbat aldaketa eragiten ditu. Atzeko planokoak ez diren hariak (proxy-deiak) orain JVM irekita mantendu dezakete amaitu arte. Proxy-deiak itxi egingo dira deia amaitu arte, baina bertan behera uzteko mezua jasoko dute. Fitxategiak behar bezala itxi eta diskora garbitzen dira hariek salbuespena espero bezala kudeatzen badute. Baliabideak garbitzeko amuak eta finalizatzaileak exekutatzen dira. Hariak sortzen direnean, AtExit amuak deitzen dira. Daemonaren bidez, hari eranskin automatikoa ezartzen da Python-eko JVM erabiltzean. Haria garbiketa behar bezala kudeatu ezin duen akatsen kodea litekeena da ixtea exekutatzen denean. Dokumentazio gehigarria erabiltzailearen eskuliburuan aurki daiteke.
  • Throwable-ren bilgarriak Object-en bilgarri bat jaso zuen espero zen emaitzaren ordez, eta horrek Python klaseetatik bihurketa arraroak ekarri zituen.
  • Inportazio sisteman akatsak konpondu dira, 'Β»jnameΒ» ez da aurkitu errorea eragin zutenak.
  • KeyboardInterrupt-en "^C" behar bezala sustatu dela ziurtatu da.
  • Sinboloen arazoa konpondu da Python 3.5.3 geroztik. PySlice_Unpack hurrengo adabakiaren bertsio batean sartu zen (3.5.4) eta ez zen erabili behar.
  • Akats bat konpondu zen numpy.linalg.inv-rekin, hutsegite bat eragin zuena. Arazoa JVM-ren eta zenbait zaporeren arteko hari-komunikazioari jarraitu zaio. Proposatutako irtenbidea JVM-a hasi aurretik numpy.linalg.inv deitzea da.

Iturria: opennet.ru

Gehitu iruzkin berria