Sasisho la JPype 1.0.2, maktaba za kupata madarasa ya Java kutoka Python

Inapatikana toleo jipya la interlayer JPype 1.0.2, ambayo inaruhusu programu za Python kupata ufikiaji kamili wa maktaba za darasa katika lugha ya Java. Ukiwa na JPype kutoka Python, unaweza kutumia maktaba mahususi ya Java kuunda programu mseto zinazochanganya msimbo wa Java na Python. Tofauti na Jython, ujumuishaji na Java haupatikani kwa kuunda lahaja ya Python kwa JVM, lakini kupitia mwingiliano katika kiwango cha mashine zote mbili kwa kutumia kumbukumbu iliyoshirikiwa. Njia iliyopendekezwa inaruhusu sio tu kufikia utendaji mzuri, lakini pia hutoa upatikanaji wa maktaba yote ya CPython na Java. Msimbo wa mradi kusambazwa na leseni chini ya Apache 2.0.

Mabadiliko kuu:

  • Akiba imeongezwa kwa simu za mbinu ili kuzuia azimio la upakiaji kupita kiasi, ambayo hupunguza sana athari ya utendakazi wa utatuzi wa mbinu, haswa ikiwa upakiaji sawa unaitwa mara nyingi, kama wakati wa utekelezaji wa kitanzi.
  • Kutoka mara 4 hadi 100, kulingana na aina ya data, uhamisho wa orodha, nakala na buffers kwa safu za primitives za Java huharakishwa. Ubadilishaji hutumia uchakataji ulioboreshwa wa bafa za kumbukumbu, badala ya API ya Mfuatano. Wakati bafa ya Python inapokutana, kipengele cha kwanza pekee ndicho kinachoangaliwa kwa ubadilishaji, kwani vibafa hivi ni sawa.
  • Inachakata shughuli za kuzima (zinazotekelezwa katika JPype 1.0.0, lakini zilirukwa wakati wa kuandaa logi ya mabadiliko). JPype sasa inaita utaratibu wa kuzima wa JVM, ambao unajaribu kutoka kwa uzuri. Hii inasababisha mabadiliko kadhaa katika tabia. Minyororo isiyo ya usuli (simu za seva mbadala) sasa inaweza kuweka JVM wazi hadi ikamilike. Simu za seva mbadala zitachakata kuzima hadi simu ikamilike, lakini itapokea ujumbe wa kughairi. Faili sasa zimefungwa ipasavyo na kusukumwa hadi kwenye diski ikiwa nyuzi zitashughulikia ubaguzi inavyotarajiwa. Vilabu vya kusafisha rasilimali na vikamilishaji vinatekelezwa. Wakati nyuzi zinatolewa, ndoano za AtExit huitwa. Kupitia daemon, kiambatisho cha nyuzi kiotomatiki kinatekelezwa wakati wa kutumia JVM kutoka Python. Msimbo wa Buggy ambao hauwezi kushughulikia usafishaji wa uzi vizuri unaweza kuning'inia wakati kuzima kumetekelezwa. Nyaraka za ziada zinaweza kupatikana katika mwongozo wa mtumiaji.
  • Kifuniko cha Throwable kilipokea karatasi ya Kitu badala ya matokeo yaliyotarajiwa, ambayo yalisababisha ubadilishaji wa kushangaza kutoka kwa madarasa ya Python.
  • Marekebisho ya makosa katika mfumo wa uingizaji ambayo yalisababisha hitilafu 'Β»jnameΒ» haikupatikana'.
  • Imehakikisha kuwa "^C" ilikuzwa ipasavyo katika KibodiInterrupt.
  • Tatizo lisilobadilika na alama tangu Python 3.5.3. PySlice_Unpack ilianzishwa katika toleo lililofuata la kiraka (3.5.4) na haikupaswa kutumiwa.
  • Imerekebisha hitilafu kwa kutumia numpy.linalg.inv iliyosababisha ajali. Suala hilo limefuatiliwa kwa mawasiliano kati ya JVM na ladha zingine numpy. Suluhisho lililopendekezwa ni kupiga simu numpy.linalg.inv kabla ya kuanza JVM.

Chanzo: opennet.ru

Kuongeza maoni