JPype 1.0.2 fanavaozana, tranomboky hidirana amin'ny kilasy Java avy amin'ny Python

Available Π½ΠΎΠ²Ρ‹ΠΉ выпуск прослойки jpg 1.0.2, izay ahafahan'ny rindranasa Python manana fidirana feno amin'ny tranomboky kilasy amin'ny fiteny Java. Miaraka amin'ny JPype avy amin'ny Python, azonao atao ny mampiasa tranomboky manokana Java hamorona rindranasa hybrid izay manambatra ny code Java sy Python. Tsy toa an'i Jython, ny fampidirana amin'ny Java dia tsy amin'ny alΓ lan'ny famoronana variana Python ho an'ny JVM, fa amin'ny alΓ lan'ny fifandraisana amin'ny haavon'ny milina virtoaly roa mampiasa fahatsiarovana iombonana. Ny fomba fiasa naroso dia tsy vitan'ny hoe manatratra fahombiazana tsara, fa manome fidirana amin'ny tranomboky CPython sy Java rehetra ihany koa. Kaody tetikasa nozarain'i nahazo alalana tamin'ny Apache 2.0.

Fiovana lehibe:

  • Π’ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ кэш, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ влияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², особСнно Ссли ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° вызываСтся ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·, ΠΊΠ°ΠΊ Π²ΠΎ врСмя выполнСния Ρ†ΠΈΠΊΠ»ΠΎΠ².
  • ΠžΡ‚ 4 Π΄ΠΎ 100 Ρ€Π°Π·, Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ускорСна ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° списков, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Π² массивы Java-ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ². ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Π² памяти, вмСсто Sequence API. Когда Python-Π±ΡƒΡ„Π΅Ρ€ встрСчаСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт провСряСтся для прСобразования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹.
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ shutdown (Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΅Ρ‰Ρ‘ Π² JPype 1.0.0, Π½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ списка ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ). JPype Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ shutdown-ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ JVM, которая пытаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«gracefullyΒ». Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСскольким измСнСниям Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ. НС Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ Π½ΠΈΡ‚ΠΈ (proxy call) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ JVM ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Ρ‹. Π’Ρ‹Π·ΠΎΠ²Ρ‹ Proxy Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ shutdown Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹Π·ΠΎΠ² Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ сообщСниС ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ. Π€Π°ΠΉΠ»Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° диск (flush), Ссли Π½ΠΈΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ…ΡƒΠΊΠΈ очистки рСсурсов ΠΈ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹. ΠŸΡ€ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π½ΠΈΡ‚Π΅ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ AtExit-Ρ…ΡƒΠΊΠΈ. Π§Π΅Ρ€Π΅Π· Π΄Π΅ΠΌΠΎΠ½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ автоматичСскоС присоСдинСниС Π½ΠΈΡ‚Π΅ΠΉ ΠΏΡ€ΠΈ использовании JVM ΠΈΠ· Python. ΠžΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ очистку Π½ΠΈΡ‚ΠΈ, вСроятно зависнСт ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ shutdown. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ докумСнтация находится Π² руководствС ΠΏΠΎ использованию.
  • ΠžΠ±Ρ‘Ρ€Ρ‚ΠΊΠ° для Throwable ΠΏΠΎΠ»ΡƒΡ‡Π°Π»Π° ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ для Object вмСсто ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ странным прСобразованиям ΠΈΠ· Python-классов.
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² систСмС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, приводящиС ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ошибки β€˜Β»jnameΒ» not found’.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Β«^CΒ» Π² KeyboardInterrupt.
  • УстранСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с символами с Python 3.5.3. PySlice_Unpack Π±Ρ‹Π» Π²Π²Π΅Π΄Ρ‘Π½ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠ°Ρ‚Ρ‡-Ρ€Π΅Π»ΠΈΠ·Π΅ (3.5.4) ΠΈ Π΅Π³ΠΎ Π½Π΅ слСдовало ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.
  • Π Π°Π·ΠΎΠ±Ρ€Π°Π½Π° ошибка с numpy.linalg.inv, приводящая ΠΊ падСнию. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° отслСТСна Π΄ΠΎ взаимодСйствия ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ JVM ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ numpy. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Π²Ρ‹Π·ΠΎΠ² numpy.linalg.inv Π΄ΠΎ запуска JVM.

Source: opennet.ru

Add a comment