Актуализация Π½Π° JPype 1.0.2, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Java класовС ΠΎΡ‚ Python

Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π½ΠΎΠ²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ наслоя JPype 1.0.2, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° Python прилоТСнията Π΄Π° ΠΈΠΌΠ°Ρ‚ пълСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ΠΎΡ‚ класовС Π½Π° Java. Π‘ JPype ΠΎΡ‚ Python ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ спСцифични Π·Π° Java Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, създавайки Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈ прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π°Ρ‚ ΠΊΠΎΠ΄ Π½Π° Java ΠΈ Python. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Jython, интСграцията с Java Π½Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‡Ρ€Π΅Π· създаванС Π½Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Python Π·Π° JVM, Π° Ρ‡Ρ€Π΅Π· взаимодСйствиС Π½Π° Π½ΠΈΠ²ΠΎ ΠΈ Π½Π° Π΄Π²Π΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволява Π½Π΅ само Π΄ΠΎΠ±Ρ€Π° производитСлност, Π½ΠΎ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всички Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ CPython ΠΈ Java. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° разпространява Π΅ ΠΏΠΎΠ΄ лицСнзия Apache 2.0.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π”ΠΎΠ±Π°Π²Π΅Π½ кСш ΠΏΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ Ρ€Π°Π·Ρ€eΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° прСзарСТданията, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява влияниСто Π²ΡŠΡ€Ρ…Ρƒ производитСлността ΠΏΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΏΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, особСно ΠΏΡ€ΠΈ изпълнСниС Π½Π° Ρ†ΠΈΠΊΠ»ΠΈ.
  • ΠŸΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΠΏΠΈΡΡŠΡ†ΠΈ, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈ Π² масиви ΠΎΡ‚ Java-ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ Π΅ ускорСно ΠΎΡ‚ 4 Π΄ΠΎ 100 ΠΏΡŠΡ‚ΠΈ, Π² зависимост ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΈ. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π±ΡƒΡ„Π΅Ρ€ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° вмСсто 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.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster