Маҷмӯаи аслӣ дар Кваркус - чаро ин муҳим аст

Салом ба ҳама! Ин дуввумин паём дар силсилаи мо дар Кваркус аст - имрӯз мо дар бораи маҷмӯаи ватанӣ сӯҳбат хоҳем кард.

Маҷмӯаи аслӣ дар Кваркус - чаро ин муҳим аст

Кваркус як стек Java аст, ки барои Кубернитель. Гарчанде ки дар ин ҷо бешубҳа корҳои зиёдеро анҷом додан лозим аст, мо дар бисёр ҷанбаҳо, аз ҷумла оптимизатсияи JVM ва як қатор чаҳорчӯбаҳо корҳои зиёдеро анҷом додем. Яке аз хусусиятҳои Quarkus, ки таваҷҷуҳи бештари таҳиягаронро ба худ ҷалб кардааст, равиши ҳамаҷониба ва бефосилаи он барои табдил додани коди Java ба файлҳои иҷрошаванда барои системаи мушаххаси амалиётӣ (ба истилоҳ “компиляцияи модарӣ”), шабеҳи C ва C++ мебошад, ки дар он чунин компиляция одатан дар охири давраи сохтмон, озмоиш ва ҷойгиркунӣ рух медиҳад.

Ва гарчанде ки компиляцияи ватанӣ муҳим аст, тавре ки мо дар зер нишон хоҳем дод, бояд қайд кард, ки Quarkus дар мошини маъмултарини Java, OpenJDK Hotspot ба шарофати беҳбуди корҳое, ки мо дар тамоми стек амалӣ кардем, хеле хуб кор мекунад. Аз ин рӯ, маҷмӯаи ватанӣ бояд ҳамчун бонуси иловагӣ баррасӣ карда шавад, ки онро мувофиқи дилхоҳ ё зарурӣ истифода бурдан мумкин аст. Дар асл, Quarkus ҳангоми сухан дар бораи тасвирҳои ватанӣ ба OpenJDK такя мекунад. Ва режими таҳиякунанда, ки аз ҷониби таҳиягарон самимона қабул карда шудааст, санҷиши қариб фаврии тағиротро аз ҳисоби қобилиятҳои пешрафтаи иҷрои коди динамикӣ, ки дар Hotspot амалӣ карда мешавад, таъмин мекунад. Илова бар ин, ҳангоми сохтани тасвирҳои аслии GraalVM, китобхонаи синфи OpenJDK ва имкониятҳои HotSpot истифода мешаванд.

Пас, чаро ба шумо маҷмӯаи ватанӣ лозим аст, агар ҳама чиз аллакай ба таври комил оптимизатсия карда шудааст? Қуйида бу саволга жавоб беришга ​​ҳаракат қиламиз.

Биёед бо чизи возеҳ оғоз кунем: Red Hat дорои таҷрибаи васеъ оид ба оптимизатсияи JVMs, стекҳо ва чаҳорчӯбаҳо ҳангоми таҳияи лоиҳа мебошад JBoss, аз ҷумла:

  • Аввалин сервери барномае, ки дар абр дар платформа кор мекунад RedHat OpenShift.
  • Аввалин сервери барномавӣ барои кор дар компютер Компютерро пайваст кунед.
  • Аввалин сервери барномае, ки дар он кор мекунад Папа Пин.
  • Як қатор лоиҳаҳое, ки дар дастгоҳҳо кор мекунанд андроид.

Мо солҳои тӯлонӣ бо мушкилоти иҷро кардани барномаҳои Java дар абр ва дар дастгоҳҳои аз ҷиҳати захираҳо маҳдуд (хондан: IoT) сару кор дорем ва омӯхтаем, ки аз JVM аз нуқтаи назари самаранокӣ ва оптимизатсияи хотира бештар истифода барем. Мисли бисёре аз дигарон, мо муддати тӯлонӣ бо маҷмӯаи аслии барномаҳои Java кор карда истодаем G.C.J., Парранда, Excelsior JET ва ҳатто Дилвик ва мо ҷиҳатҳои мусбӣ ва манфии ин равишро хуб медонем (масалан, дудилагии интихоб байни универсалии "як бор сохтан - дар ҳама ҷо" ва далели он, ки замимаҳои тартибдодашуда хурдтар ва тезтар иҷро мешаванд).

Чаро муҳим аст, ки ин ҷиҳатҳои мусбат ва манфиро баррасӣ кунем? Зеро дар баъзе ҳолатҳо таносуби онҳо ҳалкунанда мегардад:

  • Масалан, дар муҳитҳои бе сервер/ҳодисаҳо, ки дар куҷо хидматҳо бояд танҳо оғоз кунанд дар вақти воқеӣ (сахт ё нарм) бо мақсади вокуниш ба рӯйдодҳо. Баръакси хидматҳои доимии дарозмуддат, дар ин ҷо давомнокии оғози сард вақти вокуниш ба дархостро хеле зиёд мекунад. JVM барои оғоз кардан ҳоло ҳам вақти зиёдеро талаб мекунад ва гарчанде ки онро дар баъзе ҳолатҳо бо усулҳои сахтафзор кам кардан мумкин аст, фарқияти байни як сония ва 5 миллисония метавонад фарқияти байни ҳаёт ва марг бошад. Бале, дар ин ҷо шумо метавонед бо эҷоди захираи гарми мошинҳои Java бозӣ кунед (масалан, мо бо интиқоли OpenWhisk ба Knative), аммо ин худ кафолат намедиҳад, ки JVM-ҳои кофӣ барои коркарди дархостҳо ҳамчун миқёси сарборӣ мавҷуданд. Ва аз нуқтаи назари иқтисодӣ, ин эҳтимолан дурусттарин вариант нест.
  • Ғайр аз он, як ҷанбаи дигаре вуҷуд дорад, ки аксар вақт пайдо мешавад: бисёрсоҳавӣ. Сарфи назар аз он, ки JVMs аз рӯи қобилиятҳои худ ба системаҳои оператсионӣ хеле наздик шудаанд, онҳо то ҳол қодир нестанд он чизеро, ки мо дар Linux одат кардаем - равандҳои ҷудокунӣ иҷро кунанд. Аз ин рӯ, нокомии як ришта метавонад тамоми мошини Java-ро вайрон кунад. Бисёр одамон кӯшиш мекунанд, ки ин норасоиро бо роҳи ҷудо кардани JVM-и алоҳида барои ҳар як корбар бартараф кунанд, то оқибатҳои нокомиро кам кунанд. Ин комилан мантиқӣ аст, аммо бо миқёс мувофиқат намекунад.
  • Илова бар ин, барои барномаҳои ба абр нигаронидашуда, нишондиҳандаи муҳим зичии хидматҳо дар ҳост мебошад. Гузариш ба методология 12 омилҳои татбиқ, microservices ва Kubernetes шумораи мошинҳои Java-ро дар як барнома зиёд мекунад. Яъне, аз як тараф, ҳамаи ин чандирӣ ва эътимоднокӣ таъмин мекунад, аммо дар айни замон истеъмоли хотираи базавӣ аз ҷиҳати хидмат низ меафзояд ва баъзе аз ин хароҷот на ҳамеша қатъӣ заруранд. Файлҳои иҷрошавандаи ба таври статикӣ тартибдодашуда дар ин ҷо аз ҳисоби усулҳои гуногуни оптимизатсия, ба монанди рафъи коди мурдаи сатҳи паст, вақте ки тасвири ниҳоӣ танҳо он қисмҳои чаҳорчӯбаҳоро дар бар мегирад (аз ҷумла худи JDK), ки хидмат воқеан истифода мебарад, фоида меорад. Аз ин рӯ, маҷмӯаи аслии Quarkus кӯмак мекунад, ки намунаҳои хидматрасониро дар мизбон бидуни осеб ба амният ҷойгир кунанд.

Воқеан, далелҳои дар боло зикршуда барои фаҳмидани асоснокии маҷмӯаи ватанӣ аз нуқтаи назари иштирокчиёни лоиҳаи Quarkus кофӣ мебошанд. Бо вуҷуди ин, як сабаби дигар, ғайритехникӣ, аммо муҳим аст: дар солҳои охир, бисёре аз барномасозон ва ширкатҳои таҳиякунанда Java-ро тарк карда, ба манфиати забонҳои нави барномасозӣ боварӣ доранд, ки Java дар баробари JVM, стекҳо ва чаҳорчӯбаҳои худ, хеле зиёд шудааст. гуруснаи хотира, хеле суст ва ғ.

Бо вуҷуди ин, одати истифодаи як асбоб барои ҳалли ҳама гуна мушкилот аст на ҳамеша дуруст аст. Баъзан беҳтар аст, ки як қадам қафо гузоред ва чизи дигареро ҷустуҷӯ кунед. Ва агар Кваркус одамонро таваққуф кунад ва фикр кунад, пас ин барои тамоми экосистемаи Java хуб аст. Quarkus як нуқтаи назари инноватсиониро дар бораи чӣ гуна сохтани барномаҳои самараноктар муаррифӣ мекунад, ки Java-ро ба меъмории нави барномаҳо, ба мисли сервер бе сервер мувофиқтар мекунад. Илова бар ин, аз сабаби васеъ будани худ, Quarkus умедвор аст, ки экосистемаи пурраи васеъшавии Java дошта бошад ва шумораи чаҳорчӯбаҳоро ба таври назаррас афзоиш диҳад, ки компиляцияи модариро дар замимаҳои берун аз қуттӣ дастгирӣ мекунанд.

Манбаъ: will.com

Илова Эзоҳ