{"id":90484,"date":"2020-08-01T13:42:39","date_gmt":"2020-08-01T11:42:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python"},"modified":"2020-08-01T13:42:39","modified_gmt":"2020-08-01T11:42:39","slug":"obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"Uppdatering av JPype 1.0.2, ett bibliotek f\u00f6r \u00e5tkomst till Java-klasser fr\u00e5n Python","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/releases\/tag\/1.0.2\">Tillg\u00e4nglig<\/a><\/noindex> ny utg\u00e5va av lager <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 1.0.2<\/a><\/noindex>, som m\u00f6jligg\u00f6r full \u00e5tkomst f\u00f6r Python-applikationer till Java-bibliotek. Med JPype kan Python anv\u00e4nda specifika Java-bibliotek, vilket skapar hybridapplikationer som kombinerar kod i Java och Python. Till skillnad fr\u00e5n Jython uppn\u00e5s integrationen med Java inte genom att skapa en variant av Python f\u00f6r JVM, utan genom interaktion p\u00e5 niv\u00e5n av b\u00e5da virtuella maskiner, med anv\u00e4ndning av delad minne. Den f\u00f6reslagna metoden g\u00f6r det m\u00f6jligt att uppn\u00e5 h\u00f6g prestanda samt ger tillg\u00e5ng till alla bibliotek i CPython och Java. Projektkoden <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">sprids<\/a><\/noindex> \u00e4r licensierad under Apache 2.0.<\/p>\n<p>Huvudsakliga f\u00f6r\u00e4ndringar:<\/p>\n<ul>\n<li class=\"l\"> En cache har lagts till vid anrop av metoder, vilket g\u00f6r att vi kan undvika att l\u00f6sa \u00f6verlastningar, vilket avsev\u00e4rt minskar p\u00e5verkan p\u00e5 prestandan vid metoduppl\u00f6sning, s\u00e4rskilt om samma \u00f6verlastning anropas m\u00e5nga g\u00e5nger, som under k\u00f6rning av loopar.\n<li class=\"l\"> \u00d6verf\u00f6ringen av listor, tuple och buffrar till Java-primitive arrayer har blivit mellan 4 och 100 g\u00e5nger snabbare, beroende p\u00e5 datatyp. Omvandlingen anv\u00e4nder en optimerad hantering av buffrar i minnet ist\u00e4llet f\u00f6r Sequence API. N\u00e4r Python-bufferten m\u00f6ts, kontrolleras endast det f\u00f6rsta elementet f\u00f6r omvandling, eftersom datan i buffrarna \u00e4r homogen.\n<li class=\"l\"> Behandling av shutdown-operationer (implementerat redan i JPype 1.0.0, men missades i \u00e4ndringsloggen). JPype anropar nu shutdown-proceduren f\u00f6r JVM, som f\u00f6rs\u00f6ker st\u00e4nga av i \"gracefully\"-l\u00e4ge. Detta leder till flera f\u00f6r\u00e4ndringar i beteendet. Bakgrundstr\u00e5dar (proxy-anrop) kan nu h\u00e5lla JVM \u00f6ppen tills de avslutas. Proxy-anrop kommer att hantera shutdown tills anropet \u00e4r slutf\u00f6rt, men f\u00e5r ett avbrottmeddelande. Filer st\u00e4ngs nu korrekt och data skrivs ut till disk (flush), om tr\u00e5darna hanterar undantaget p\u00e5 r\u00e4tt s\u00e4tt. Resurshanterings-hooks och finalizers utf\u00f6rs. Vid skapande av tr\u00e5dar kallas AtExit-hooks. Automatisk tr\u00e5danslutning fr\u00e5n Python till JVM \u00e4r implementerad via en daemon. Felaktig kod som inte kan hantera tr\u00e5darna korrekt kan h\u00e4nga sig vid shutdown. Ytterligare dokumentation finns i anv\u00e4ndarmanualen.\n<li class=\"l\"> Inslaget f\u00f6r Throwable fick en inslagning f\u00f6r Object ist\u00e4llet f\u00f6r det f\u00f6rv\u00e4ntade resultatet, vilket ledde till konstiga omvandlingar fr\u00e5n Python-klasser.\n<li class=\"l\"> Typografiska fel i importsystemet har r\u00e4ttats, vilket ledde till att felet '\u00bbjname\u00ab not found' visades.\n<li class=\"l\"> Korrekt hantering av '\u00acC' i KeyboardInterrupt har s\u00e4kerst\u00e4llts.\n<li class=\"l\"> Problemet med tecken med Python 3.5.3 har \u00e5tg\u00e4rdats. PySlice_Unpack introducerades i den efterf\u00f6ljande patch-utg\u00e5van (3.5.4) och borde inte ha anv\u00e4nts.\n<li class=\"l\"> Ett fel med numpy.linalg.inv som ledde till krascher har analyserats. Problemet sp\u00e5rades till tr\u00e5dinteraktion mellan JVM och vissa versioner av numpy. Den f\u00f6reslagna l\u00f6sningen \u00e4r att anropa numpy.linalg.inv innan JVM startas.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>K\u00e4lla: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53469\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438 JPype 1.0.2, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f Python-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Java. \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 JPype \u0438\u0437 Python \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f Java \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u0447\u0435\u0442\u0430\u044e\u0449\u0438\u0435 \u043a\u043e\u0434 \u043d\u0430 Java \u0438 Python. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Jython, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Java \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 Python \u0434\u043b\u044f JVM, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-90484","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 JPype 1.0.2, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Java-\u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438\u0437 Python | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-01T11:42:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-01T11:42:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Uppdatering av JPype 1.0.2, bibliotek f\u00f6r att f\u00e5 \u00e5tkomst till Java-klasser fr\u00e5n Python | ProHoster","description":"En ny utg\u00e5va av lagret \u00e4r tillg\u00e4nglig","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 JPype 1.0.2, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Java-\u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438\u0437 Python | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0438","og:url":"https:\/\/prohoster.info\/sv\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-01T11:42:39+00:00","article:modified_time":"2020-08-01T11:42:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"90484","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:49:32","updated":"2022-10-08 07:13:16","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/90484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=90484"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/90484\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=90484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=90484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=90484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}