Përditësimi JPype 1.0.2, bibliotekës për aksesin në klasat Java nga Python

I verfĂŒshĂ«m lĂ«shimi i ri i shtresĂ«s JPype 1.0.2, qĂ« mundĂ«son njĂ« qasje tĂ« plotĂ« tĂ« aplikacioneve Python nĂ« libraritĂ« e klasave nĂ« gjuhĂ«n Java. Me ndihmĂ«n e JPype, nga Python mund tĂ« pĂ«rdoren libraritĂ« specifike pĂ«r Java, duke krijuar aplikacione hibride qĂ« kombinojnĂ« kodin nĂ« Java dhe Python. Ndryshe nga Jython, integrimi me Java arrihet jo pĂ«rmes krijimit tĂ« njĂ« varianti Python pĂ«r JVM, por pĂ«rmes ndĂ«rveprimit nĂ« nivelin e tĂ« dyja makinave virtuale, duke pĂ«rdorur memorie tĂ« pĂ«rbashkĂ«t. Qasja e propozuar nuk vetĂ«m qĂ« ofron njĂ« performancĂ« tĂ« mirĂ«, por gjithashtu siguron qasje nĂ« tĂ« gjitha libraritĂ« CPython dhe Java. Kodi i projektit distribuohet nĂ«n licencĂ«n Apache 2.0.

Ndryshimet kryesore:

  • NĂ« thirrjet e metodave Ă«shtĂ« shtuar njĂ« caches, qĂ« lejon shmangien e zgjidhjeve tĂ« mbingarkesave, duke reduktuar ndjeshĂ«m ndikimin nĂ« performancĂ« tĂ« zgjidhjes sĂ« metodave, veçanĂ«risht kur e njĂ«jta mbingarkesĂ« thirret shumĂ« herĂ«, si gjatĂ« ekzekutimit tĂ« cikleve.
  • ShpejtĂ«sia e transferit tĂ« listave, tupleve dhe bufereve nĂ« masat primitive Java Ă«shtĂ« pĂ«rshpejtuar nga 4 deri nĂ« 100 herĂ«, nĂ« varĂ«si tĂ« llojit tĂ« tĂ« dhĂ«nave. Konvertimi pĂ«rdor pĂ«rpunim tĂ« optimizuar tĂ« bufereve nĂ« memorie, nĂ« vend tĂ« API-sĂ« Sequence. Kur takon njĂ« buffer Python, vetĂ«m elementi i parĂ« kontrollohet pĂ«r konvertim, pasi tĂ« dhĂ«nat nĂ« bufer janĂ« homogjene.
  • Trajtimi i operacioneve tĂ« shutdown (implementuar qĂ« nĂ« JPype 1.0.0, por i haruar gjatĂ« pĂ«rgatitjes sĂ« listĂ«s sĂ« ndryshimeve). JPype tani thĂ«rret procedurĂ«n e shutdown tĂ« JVM, e cila pĂ«rpiqet tĂ« ekzekutojĂ« daljen nĂ« mĂ«nyrĂ« "gracefully". Kjo çon nĂ« disa ndryshime nĂ« sjellje. Thirrjet e prapambetur (proxy call) tani mund tĂ« mbajnĂ« JVM tĂ« hapur deri sa tĂ« pĂ«rfundojnĂ«. Thirrjet Proxy do tĂ« menaxhojnĂ« shutdown deri sa thirrja tĂ« pĂ«rfundojĂ«, por do tĂ« marrin njĂ« mesazh ndĂ«rprerjeje. SkedarĂ«t tani mbyllen siç duhet dhe shkarkojnĂ« tĂ« dhĂ«nat nĂ« disk (flush), nĂ«se thithĂ«sit menaxhojnĂ« pĂ«rjashtimin nĂ« mĂ«nyrĂ«n e duhur. Kryhen hapat e pastrimit tĂ« burimeve dhe finalizuesit. Kur krijohen thirrje, thirren hapat AtExit. Kjo realizohet automatikisht pĂ«r anĂ«tarĂ«t e thirrjeve nĂ« pĂ«rdorimin e JVM nga Python. Kodi i gabuar qĂ« nuk mund tĂ« menaxhojĂ« saktĂ«sisht pastrimin e thirrjeve, mund tĂ« varĂ« gjatĂ« ekzekutimit tĂ« shutdown. Dokumentacioni shtesĂ« ndodhet nĂ« manualin e pĂ«rdorimit.
  • Lidhja pĂ«r Throwable merr njĂ« lidhje pĂ«r Object nĂ« vend tĂ« rezultatit tĂ« pritur, duke çuar nĂ« transformime tĂ« çuditshme nga klasat Python.
  • Korrigjohen gabimet e shtypjes nĂ« sistemin e importit, qĂ« çojnĂ« nĂ« daljen e gabimit '»jname» not found'.
  • Siguruar pĂ«rparimin e saktĂ« tĂ« 'C^' nĂ« KeyboardInterrupt.
  • Zgjidhur problemi me simbolet nga Python 3.5.3. PySlice_Unpack Ă«shtĂ« futur nĂ« lĂ«shimin e ardhshĂ«m tĂ« patch-it (3.5.4) dhe nuk duhet tĂ« pĂ«rdoret.
  • NjĂ« gabim me numpy.linalg.inv, qĂ« çonte nĂ« krisje, Ă«shtĂ« analizuar. Problemi u ndoq deri te ndĂ«rveprimi i eksponentĂ«ve midis JVM dhe disa varianteve tĂ« numpy. Zgjidhja e propozuar — thirrja e numpy.linalg.inv para se tĂ« startohet JVM.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster