{"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\/sq\/blog\/news\/obnovlenie-jpype-1-0-2-biblioteki-dlya-dostupa-k-java-klassam-iz-python","title":{"rendered":"Ritja e JPype 1.0.2, bibliotek\u00ebs p\u00ebr qasje n\u00eb klasat Java nga 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\">I disponuesh\u00ebm<\/a><\/noindex> l\u00ebshimi i ri i shtres\u00ebs <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">JPype 1.0.2<\/a><\/noindex>, e cila mund\u00ebson qasje t\u00eb plot\u00eb t\u00eb aplikacioneve Python n\u00eb bibliotekat e klasave n\u00eb gjuh\u00ebn Java. Me ndihm\u00ebn e JPype, nga Python mund t\u00eb p\u00ebrdoren biblioteka specifike p\u00ebr Java, duke krijuar aplikacione hibride q\u00eb kombinojn\u00eb kodin n\u00eb Java dhe Python. Ndryshe nga Jython, integimi me Java arrihet jo p\u00ebrmes krijimit t\u00eb nj\u00eb varianti Python p\u00ebr JVM, por p\u00ebrmes nd\u00ebrveprimit n\u00eb nivelin e t\u00eb dyja makinerive virtuale, duke p\u00ebrdorur memorie t\u00eb ndar\u00eb. Qasja e propozuar lejon jo vet\u00ebm arritjen e performanc\u00ebs s\u00eb lart\u00eb, por gjithashtu ofron qasje n\u00eb t\u00eb gjitha bibliotekat CPython dhe Java. Kodi i projektit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jpype-project\/jpype\/\">shp\u00ebrndahet<\/a><\/noindex> n\u00ebn licenc\u00ebn Apache 2.0.<\/p>\n<p>Ndryshimet kryesore:<\/p>\n<ul>\n<li class=\"l\"> Shtuar nj\u00eb cache n\u00eb thirrjet e metodave p\u00ebr t\u00eb shmangur zgjidhjen e ngarkesave, e cila ndjesh\u00ebm redukton ndikimin n\u00eb performanc\u00eb t\u00eb zgjidhjes s\u00eb metodave, ve\u00e7an\u00ebrisht n\u00ebse e nj\u00ebjta ngarkes\u00eb thirret shum\u00eb her\u00eb, si n\u00eb ciklet n\u00eb ekzekutim.\n<li class=\"l\"> Transferta e listave, tupleve dhe bufeve n\u00eb sisteme primitive Java \u00ebsht\u00eb p\u00ebrshpejtuar nga 4 deri n\u00eb 100 her\u00eb, n\u00eb var\u00ebsi t\u00eb llojit t\u00eb t\u00eb dh\u00ebnave. Konvertimi p\u00ebrdor p\u00ebrpunim t\u00eb optimizuar t\u00eb bufereve n\u00eb memorie, n\u00eb vend t\u00eb API-s\u00eb s\u00eb Sequences. Kur haset nj\u00eb buffer Python, kontrollohet vet\u00ebm elementi i par\u00eb p\u00ebr transformim, pasi t\u00eb dh\u00ebnat jan\u00eb homogjene.\n<li class=\"l\"> P\u00ebrpunimi i operacioneve t\u00eb shuarjes (implementuar q\u00eb n\u00eb JPype 1.0.0, por u la m\u00ebnjan\u00eb gjat\u00eb p\u00ebrgatitjes s\u00eb list\u00ebs s\u00eb ndryshimeve). JPype tani th\u00ebrret procedur\u00ebn e shuarjes t\u00eb JVM, e cila p\u00ebrpiqet t\u00eb dal\u00eb n\u00eb m\u00ebnyr\u00eb &#171;graceful&#187;. Kjo \u00e7on n\u00eb disa ndryshime n\u00eb sjellje. Thread-et jo background (proxy call) tani mund t\u00eb mbajn\u00eb JVM t\u00eb hapur derisa t\u00eb p\u00ebrfundojn\u00eb. Thirrjet Proxy do t\u00eb trajtojn\u00eb shuarjen derisa thirrja t\u00eb p\u00ebrfundoj\u00eb, por do t\u00eb marrin nj\u00eb mesazh nd\u00ebrprerjeje. Skedaret tani mbyllen si\u00e7 duhet dhe derdhin t\u00eb dh\u00ebnat n\u00eb disk (flush), n\u00ebse threadet trajtojn\u00eb p\u00ebrjashtimin si\u00e7 duhet. Kryhen hook-et p\u00ebr pastrimin e burimeve dhe finalizuesit. N\u00eb momentin e krijimit t\u00eb thread-eve thirren hook-et AtExit. N\u00ebp\u00ebrmjet demonit implementohet bashkimi automatike i thread-eve kur p\u00ebrdoret JVM nga Python. Kodi i gabuar, q\u00eb nuk mund t\u00eb trajtoj\u00eb si\u00e7 duhet pastrimin e thread-it, mund t\u00eb ngec\u00eb gjat\u00eb shuarjes. Dokumentacioni shtes\u00eb ndodhet n\u00eb udh\u00ebzimin p\u00ebr p\u00ebrdorim.\n<li class=\"l\"> Ambale p\u00ebr Throwable merrte ambalazhimin p\u00ebr Object n\u00eb vend t\u00eb rezultatit t\u00eb pritur, duke \u00e7uar n\u00eb transformime t\u00eb \u00e7uditshme nga klasat Python.\n<li class=\"l\"> Korrigjohen gabimet e shtypjes n\u00eb sistemin e importit, q\u00eb \u00e7ojn\u00eb n\u00eb shfaqjen e gabimit &#8216;&#187;jname&#187; not found&#8217;.\n<li class=\"l\"> Sigurohet propagimi i sakt\u00eb t\u00eb &#171;^C&#187; n\u00eb KeyboardInterrupt.\n<li class=\"l\"> Problemin me karakteret q\u00eb vinte nga Python 3.5.3 \u00ebsht\u00eb zgjidhur. PySlice_Unpack u fut n\u00eb nj\u00eb patch-release t\u00eb ardhsh\u00ebm (3.5.4) dhe nuk duhej t\u00eb p\u00ebrdorej.\n<li class=\"l\"> Zgjidhet nj\u00eb gabim me numpy.linalg.inv q\u00eb \u00e7on n\u00eb rr\u00ebzim. Problemi u gjurmua deri te nd\u00ebrveprimi i thread-eve midis JVM dhe disa varianteve t\u00eb numpy. Zgjidhja e propozuar &#8212; thirrja e numpy.linalg.inv para se JVM t\u00eb nis\u00eb.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Burimi: <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.3 - 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\/sq\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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\udd47P\u00ebrdit\u00ebsimi JPype 1.0.2, bibliotek\u00ebs p\u00ebr qasje n\u00eb klasat Java nga Python | ProHoster","description":"Nj\u00eb l\u00ebshim i ri i shtres\u00ebs \u00ebsht\u00eb n\u00eb dispozicion","canonical_url":"https:\/\/prohoster.info\/sq\/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":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/90484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=90484"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/90484\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=90484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=90484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=90484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}