Обновление JPype 1.0.2, библиотеки для доступа к Java-классам из Python
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Доступен новый выпуск прослойки JPype 1.0.2, позволяющей организовать полный доступ Python-приложений к библиотекам классов на языке Java. При помощи JPype из Python можно использовать специфичные для Java библиотеки, создавая гибридные приложения, сочетающие код на Java и Python. В отличие от Jython, интеграция с Java достигается не через создание варианта Python для JVM, а через взаимодействие на уровне обеих виртуальных машин, используя разделяемую память. Предложенный подход позволяет не только добиться хорошей производительности, но и предоставляет доступ ко всем библиотекам CPython и Java. Код проекта распространяется под лицензией Apache 2.0.
Основные изменения:
- В вызов методов добавлен кэш, позволяющий избежать разрешения перегрузок, что значительно уменьшает влияние на производительность разрешения методов, особенно если одна и та же перегрузка вызывается много раз, как во время выполнения циклов.
- От 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.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/jpype-proje...)
- OpenNews: Релиз JPype 1.0, библиотеки для доступа к Java-классам из Python
- OpenNews: Релиз JPype 0.7.2, библиотеки для доступа к Java-классам из Python
- OpenNews: Релиз JPype 0.7, библиотеки для доступа к Java-классам из Python
- OpenNews: Inlinec - новый способ использования Си-кода в Python-скриптах
- OpenNews: Гвидо ван Россум предложил включить в Python операторы для сопоставления с образцом
Похожие новости:
- [Java, Карьера в IT-индустрии] Поиск работы Java-программистом в Лондоне по Dependent визе
- [JavaScript, Node.JS, VueJS] Как мы проводили офлайн мероприятие в онлайн формате
- [GitHub, Python, SQLite, Алгоритмы, Веб-аналитика] Как проанализировать рынок фотостудий с помощью Python (2/3). База данных
- [JavaScript, ReactJS, Программирование, Разработка веб-сайтов] О роли фронтенд-разработчика (перевод)
- [Разработка веб-сайтов] День и ночь в интернете, или открытое письмо веб-разработчикам
- [JavaScript, Разработка веб-сайтов] Простое объяснение делегирования событий (перевод)
- [JavaScript, Node.JS, Разработка веб-сайтов] Lock-файлы npm
- [JavaScript] «Светлое» будущее моих фейлов
- [Тестирование IT-систем, JavaScript, Разработка игр] Как пройти финальный уровень JS QA Game от SEMrush
- [Java, Программирование, Профессиональная литература] Фреймворк Quarkus: как в нем реализуется чистая архитектура (перевод)
Теги для поиска: #_jpype, #_python, #_java
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 00:20
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Доступен новый выпуск прослойки JPype 1.0.2, позволяющей организовать полный доступ Python-приложений к библиотекам классов на языке Java. При помощи JPype из Python можно использовать специфичные для Java библиотеки, создавая гибридные приложения, сочетающие код на Java и Python. В отличие от Jython, интеграция с Java достигается не через создание варианта Python для JVM, а через взаимодействие на уровне обеих виртуальных машин, используя разделяемую память. Предложенный подход позволяет не только добиться хорошей производительности, но и предоставляет доступ ко всем библиотекам CPython и Java. Код проекта распространяется под лицензией Apache 2.0. Основные изменения:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 00:20
Часовой пояс: UTC + 5