Update JPype 1.0.2, perpustakaan pikeun ngakses kelas Java ti Python

Aya release anyar interlayer jpg 1.0.2, anu ngamungkinkeun aplikasi Python gaduh aksés pinuh ka perpustakaan kelas dina basa Java. Kalayan JPype ti Python, anjeun tiasa nganggo perpustakaan khusus Java pikeun nyiptakeun aplikasi hibrid anu ngagabungkeun kode Java sareng Python. Teu kawas Jython, integrasi jeung Java kahontal teu ngaliwatan nyieun varian Python pikeun JVM, tapi ngaliwatan interaksi dina tingkat duanana mesin virtual ngagunakeun memori dibagikeun. Pendekatan anu diusulkeun ngamungkinkeun henteu ngan ukur pikeun ngahontal prestasi anu saé, tapi ogé nyayogikeun aksés ka sadaya perpustakaan CPython sareng Java. Kodeu proyék disebarkeun ku dilisensikeun dina Apache 2.0.

Parobahan utama:

  • Cache geus ditambahkeun kana panggero métode pikeun nyingkahan résolusi overload, nu greatly ngurangan dampak kinerja resolusi metoda, utamana lamun overload sarua disebut sababaraha kali, sakumaha salila palaksanaan loop.
  • Ti 4 dugi ka 100 kali, gumantung kana jinis data, transfer daptar, tuple sareng panyangga kana susunan primitif Java gancangan. Konversi ngagunakeun ngolah dioptimalkeun tina panyangga dina mémori, tinimbang API Sekuen. Lamun panyangga Python ieu encountered, ngan unsur munggaran dipariksa pikeun konversi, saprak buffers ieu homogen.
  • Ngolah operasi shutdown (dilaksanakeun dina JPype 1.0.0, tapi ieu skipped nalika Nyiapkeun changelog nu). JPype ayeuna nyauran rutin shutdown JVM, anu nyobian kaluar kalayan anggun. Ieu ngakibatkeun sababaraha parobahan dina kabiasaan. Utas non-background (panggilan proxy) ayeuna tiasa ngajaga JVM kabuka dugi ka réngsé. Telepon proxy bakal ngolah shutdown dugi ka sauran réngsé, tapi bakal nampi pesen batal. Berkas ayeuna ditutup leres sareng disiramkeun kana disk upami utas ngadamel pengecualian sapertos anu diharapkeun. Resource cleanup hook na finalizers dieksekusi. Nalika threads anu spawned, hook AtExit disebut. Ngaliwatan daemon, kantétan thread otomatis dilaksanakeun nalika nganggo JVM ti Python. Kode Buggy anu teu tiasa leres nanganan beberesih benang sigana bakal ngagantung nalika pareum dieksekusi. Dokuméntasi tambahan tiasa dipendakan dina manual pangguna.
  • The wrapper pikeun Throwable narima wrapper pikeun Objék tinimbang hasil ekspektasi, nu ngarah ka conversions aneh ti kelas Python.
  • Ngalereskeun typos dina sistem impor anu nyababkeun kasalahan '»jname» teu kapendak'.
  • Mastikeun yén "^C" dipromosikeun leres dina KeyboardInterrupt.
  • Masalah dibereskeun sareng simbol saprak Python 3.5.3. PySlice_Unpack diwanohkeun dina release patch saterusna (3.5.4) jeung teu kudu geus dipaké.
  • Ngalereskeun bug sareng numpy.linalg.inv anu nyababkeun kacilakaan. Masalahna parantos disusud kana komunikasi benang antara JVM sareng sababaraha rasa numpy. Solusi anu diusulkeun nyaéta nelepon numpy.linalg.inv sateuacan ngamimitian JVM.

sumber: opennet.ru

Tambahkeun komentar