WebAssembly Microbenchmarking Exposed: The Surprising Truth Behind Performance Claims

Atklājiet īsto WebAssembly spēku: dziļa izpēte par mikrobenchmarking mītiem, metodēm un rezultātiem. Uzziniet, kas patiesi ietekmē veiktspēju mūsdienu tīmekļa lietojumprogrammās.

Ievads: Kāpēc mikrobenchmarking ir svarīgs WebAssembly

WebAssembly (Wasm) ir ātri kļuvis par kritisku tehnoloģiju, kas ļauj augstas veiktspējas lietojumprogrammas tīmeklī, piedāvājot tuvumā dzīvotspējīgas izpildes ātrumus un plašu valodu atbalstu. Ja Wasm pieņemšana pieaug, sapratne par tā reālās pēcpārbaudes raksturlielumiem kļūst būtiska izstrādātājiem un organizācijām, kas cenšas optimizēt savas lietojumprogrammas. Mikrobenchmarking – mazu, izolētu koda fragmentu veiktspējas mērīšana – spēlē izšķirošu lomu šajā procesā. Atšķirībā no makrobenchmarkiem, kas novērtē kopējo lietojumprogrammas veiktspēju, mikrobenchmarki koncentrējas uz konkrētām operācijām, piemēram, aritmētiku, atmiņas piekļuvi vai funkciju izsaukumiem, sniedzot detālajā ieskatu par Wasm izpildes vidi efektivitāti.

Mikrobenchmarking ir svarīgs WebAssembly, jo tas palīdz identificēt veiktspējas šaurās vietas, norāda optimizācijas centienus un informē lēmumus par darbības izvēli un koda ģenerēšanas stratēģijām. Wasm tiek izpildīts dažādās vidē, tostarp pārlūkprogrammās, atsevišķos izpildes laikos un malu platformās, katrai ar unikāliem veiktspējas raksturlielumiem. Mikrobenchmarki ļauj izstrādātājiem salīdzināt šīs vides, atklājot nianses atšķirības tajā, kā tās apstrādā zemākas līmeņa operācijas. Tas ir īpaši svarīgi, ņemot vērā Wasm dzinēju attīstošo dabu, kas bieži ievieš jaunas optimizācijas un funkcijas (WebAssembly).

Turklāt mikrobenchmarking atbalsta plašāku WebAssembly ekosistēmu, nodrošinot reproducējamu, mērķtiecīgu veiktspējas datus, kas var veicināt uzlabojumus kompilatoros un izpildes laikos. Tas palīdz arī validēt piedāvāto valodas paplašinājumu vai jauno API ietekmi, nodrošinot, ka uzlabojumi sniedz taustāmus ieguvumus. Kopsavilkumā mikrobenchmarking ir pamata prakse ikvienam, kas cenšas izmantot visu WebAssembly potenciālu, ļaujot informēt optimizāciju un veicinot dziļāku izpratni par Wasm veiktspējas ainavu (Bytecode Alliance).

Uzticamas WebAssembly mikrobenchmarking vides izveide

Uzticamas vides izveide WebAssembly mikrobenchmarking nolūkiem ir būtiska, lai iegūtu precīzus un reproducējamus veiktspējas mērījumus. Pirmais solis ir izvēlēties konsekventu aparatūras un programmatūras pamatu. Tas nozīmē, ka jāveic benchmarki uz vienas fiziskas mašīnas, ar fiksētajiem CPU frekvences maiņas iestatījumiem un jāizslēdz fona procesi, kas varētu radīt troksni. Konteinerizācijas rīku, piemēram, Docker izmantošana var palīdzēt standartizēt vidi, taču ir svarīgi nodrošināt, ka konteineru papildu slodze nekorekti neizkropļo rezultātus.

Pārlūkprogrammas izvēle un konfigurācija ir vienlīdz nozīmīgas. Dažādas pārlūkprogrammas īsteno WebAssembly dzinējus ar atšķirīgām optimizācijas stratēģijām, tāpēc benchmarki jāveic vairākās pārlūkprogrammās – piemēram, Mozilla Firefox, Google Chrome un Microsoft Edge – lai iegūtu visaptverošu veiktspējas profilu. Pārlūkprogrammu paplašinājumu izslēgšana, inkognito režīma aktivizēšana un komandu līnijas karogu izmantošana, lai izslēgtu tādas funkcijas kā JIT atkļūdošana vai fonu cilnes samazināšana, var papildus samazināt variabilitāti.

Lai nodrošinātu precīzu laika mērīšanu, ieteicams izmantot augstas izšķirtspējas taimerus, piemēram, Performance.now(), bet jāpievērš uzmanība laika sprieguma izšķirtspējai un iespējamai ierobežošanai drošības iemeslu dēļ. Katra mikrobenchmarka veikšana vairākas reizes un statistisko mērījumu (vidējā, mediāna, standarta novirze) ziņošana palīdz mazināt pārejošo sistēmas valstu ietekmi. Beigās visi videi raksturlielumi, pārlūkprogrammu versijas un sistēmas konfigurācijas jādocumentē, lai nodrošinātu, ka rezultāti ir reproducējami un salīdzināmi dažādās iestatījumos, kā uzsvērts WebAssembly kopienas grupā.

Parastās piedzīvošanās un nepareizie uzskati WebAssembly benchmarkos

WebAssembly mikrobenchmarking ir niansētu process, un vairākas parastās piedzīvošanās un nepareizie uzskati var mazināt rezultātu derīgumu. Viens bieži rodas jautājums ir pieņēmums, ka mikrobenchmarki tieši atspoguļo reālo veiktspēju. Mikrobenchmarki bieži izolē specifiskas operācijas, piemēram, aritmētiku vai atmiņas piekļuvi, taču tās neņem vērā sarežģītās mijiedarbības, kas pastāv pilnās lietojumprogrammās, piemēram, I/O, tīkla latentums vai vairāku pavedienu. Tā rezultātā mikrobenchmarki var pārspīlēt vai nepietiekami novērtēt WebAssembly praktiskās veiktspējas ieguvumus ražošanas vidēs.

Cita kļūda ir pieņēmums, ka visas pārlūkprogrammas un izpildes laiki izpilda WebAssembly kodu identiski. Patiesībā veiktspēja var ievērojami atšķirties starp dažādiem dzinējiem (piemēram, V8 Chrome, SpiderMonkey Firefox vai Wasmtime atsevišķai izpildei), jo pastāv atšķirības optimizācijas stratēģijās, atmiņas savākšanā un JIT kompilācijā. Neņemot vērā šīs variācijas, tas var novest pie maldinošiem secinājumiem par WebAssembly efektivitāti vai piemērotību noteiktam lietošanas gadījumam. Precīzai benchmarkingai ir būtiski testēt vairākās vidēs un dokumentēt konkrētās versijas un konfigurācijas, kas izmantotas (WebAssembly).

Turklāt mikrobenchmarki ir jutīgi pret JavaScript dzinēju sasildīšanas efektiem, kešatmiņas un fona optimizācijām. Benchmarki, kas nesatur pietiekami daudz sasildīšanas iterāciju vai neņem vērā šos faktorus, var ziņot par nesakārtotām vai mākslīgi palielinātām rezultātiem. Pareiza metodoloģija – piemēram, sākotnējo palaišanu iznīcināšana, augstas izšķirtspējas taimeru izmantošana un testu veikšana izolētās vidēs – palīdz mazināt šos jautājumus (V8).

Galu galā, šo piedzīvošanos sapratne ir būtiska, lai radītu ticamus un rīcībai piemērotus ieskatus no WebAssembly mikrobenchmarkiem un izvairītos no pārāk vispārīgiem vai neprecīziem apgalvojumiem par veiktspēju.

Galvenie metriķi: Ko jums patiešām vajadzētu mērīt?

Veicot WebAssembly mikrobenchmarking, pareizo metriķu izvēle ir izšķiroša, lai iegūtu nozīmīgus un rīcībai piemērotus ieskatus. Visbiežāk mērītais metriks ir izpildes laiks, parasti ziņots kā vidējais, mediāna vai percentilu latentums. Tomēr koncentrēšanās tikai uz bruto ātrumu var būt maldinoša, jo WebAssembly veiktspēju ietekmē tādi faktori kā JIT kompilācija, sasilšanas fāzes un resursdatora vides variabilitāte. Tādēļ ir būtiski arī izmērīt sākuma laiku – laiku no moduļa iestādes līdz pirmajai funkcijas izpildei – kas ir īpaši relevant serverless un malu datu apstrādes scenārijos, kur bieži sastopamas aukstā uzsākšana (WebAssembly.org).

Cits galvenais metriks ir atmiņas lietojums, ieskaitot gan maksimuma, gan stabilas stāvokļa patēriņu. WebAssembly lineārā atmiņas modeļa un atmiņas savākšanas uzvedība var ietekmēt lietojumprogrammas mērogojamību un reakcijas laiku, īpaši resursu ierobežotās vidēs. Turklāt bināra lielums jāseko, jo mazāki bināri samazina lejupielādes un ielādes laikus, tieši ietekmējot lietotāja pieredzi tīmekļa kontekstā (Pasaules Plašsaziņas Līdzekļu Konsorcijs (W3C)).

Lai veiktu advancētu benchmarking, apsveriet sistēmas līmeņa metriks, piemēram, CPU lietojuma, kešatmiņas kļūdas un I/O papildu slodzes, kas var atklāt šaurās vietas, kas nav acīmredzamas tikai no laika mērījumiem. Visfinally, determinisms un reproducējamība ir būtiska: benchmarki jāveic kontrolētās vidēs, pievēršot uzmanību pārlūkprogrammas vai izpildes laiku versijām, aparatūrai un fona procesiem, lai nodrošinātu, ka rezultāti ir gan ticami, gan salīdzināmi (WebAssembly specifikācija).

Kopsavilkumā, efektīvā WebAssembly mikrobenchmarking prasa holistisku pieeju, mērīt ne tikai ātrumu, bet arī atmiņu, bināra lielumu un sistēmas līmeņa uzvedību, vienlaikus nodrošinot stingru eksperimentālo kontroli.

WebAssembly veiktspējas salīdzināšana starp pārlūkprogrammām un ierīcēm

WebAssembly (Wasm) veiktspējas salīdzināšana starp pārlūkprogrammām un ierīcēm ir niansēts process, kas atklāj nozīmīgu variabilitāti, ko izraisa atšķirības JavaScript dzinēju, aparatūras arhitektūrās un sistēmas resursos. Mikrobenchmarking – izmantojot mazas, mērķtiecīgas pārbaudes, lai mērītu konkrētu Wasm operāciju izpildes ātrumu – kalpo kā būtisks rīks, lai identificētu šīs veiktspējas atšķirības. Piemēram, tas pats Wasm kods var izpildīties atšķirīgā ātrumā Mozilla Firefox (izmantojot SpiderMonkey dzinēju) pret Google Chrome (izmantojot V8), jo pastāv atšķirības viņu Wasm kompilācijas caurulēs un optimizācijas stratēģijās.

Ierīces aparatūra vēl vairāk sarežģo ainu. Mobilie ierīces ar ierobežotiem CPU un atmiņas resursiem bieži sniedz zemāku Wasm veiktspēju salīdzinājumā ar datoriem, pat tad, ja tās izmanto to pašu pārlūkprogrammu. Turklāt mikrobenchmarki var atklāt, kā labi pārlūkprogramma izmanto aparatūras funkcijas, piemēram, SIMD instrukcijas vai vairāku kodolu apstrādi, kas mūsdienu Wasm izpildes laikos tiek arvien vairāk atbalstītas. Piemēram, Apple Safari ARM balstītajās ierīcēs var parādīt atšķirīgas veiktspējas raksturlielumus nekā Intel balstītajās mašīnās, atspoguļojot pamatā esošās aparatūras ietekmi uz Wasm izpildi.

Lai nodrošinātu taisnīgas un nozīmīgas salīdzinošās analīzes, ir svarīgi kontrolēt faktorus, piemēram, pārlūkprogrammas versiju, ierīces siltuma stāvokli un fona procesus. Rīki, piemēram, WebAssembly Binary Toolkit un pārlūkprogrammai specifiski veiktspējas profilers, var palīdzēt precīzu mērījumu apkopošanā. Galu galā mikrobenchmarking starp pārlūkprogrammām un ierīcēm ne tikai uzsver pašreizējās veiktspējas atšķirības, bet arī vada pārlūkprogrammu ražotājus un Wasm rīku izstrādātājus optimizēt savu īstenojumu plašākai videi.

Lietu izpētes: reāli WebAssembly mikrobenchmarking rezultāti

Lietu izpētes par reāliem WebAssembly mikrobenchmarking sniedz vērtīgus ieskatus par praktiskajiem veiktspējas raksturlielumiem WebAssembly dažādās vidēs un slodzēs. Piemēram, visaptverošs pētījums, ko veica V8 JavaScript Engine, salīdzināja WebAssembly un JavaScript veiktspēju uz aprēķina kodoliem, piemēram, matricas reizināšanu, kriptogrāfisko hashingu un attēlu apstrādi. Rezultāti parādīja, ka WebAssembly bieži sasniedz tuvumā dzīvotspējīgas izpildes ātrumus, īpaši aprēķinu uzdevumos, pārsniedzot JavaScript no 1.2x līdz vairāk nekā 10x atkarībā no slodzes un pārlūkprogrammas.

Cita ievērojama lieta ir WebAssembly benchmarkēšana serverless vidēs, kā ziņojusi Fastly. Viņu atklājumi uzsvēra, ka WebAssembly moduļi raksturo zemas aukstā uzsākšanas laikus un konsekventu izpildes latentumu, padarot tos piemērotus malu datu apstrādes scenārijiem. Tomēr pētījums arī parādīja, ka veiktspēja var ievērojami atšķirties atkarībā no saimnieka izpildes laika un izpildāmā koda sarežģītības.

Turklāt Bytecode Alliance veica mikrobenchmarkus uz vairākām izpildes vidēm, tostarp Wasmtime un Wasmer, parādot, ka, lai gan WebAssembly ir ļoti pārvietojams, joprojām pastāv ievērojamas atšķirības izpildes ātrumā un atmiņas izmantošanā starp izpildes vidēm. Šie gadījuma pētījumi kopumā uzsver konteksta specifiskās benchmarking nozīmīgumu un nepieciešamību ņemt vērā faktorus, piemēram, izpildes laika īstenošanu, slodzes raksturlielumus un integrācijas papildu slodzi, novērtējot WebAssembly atbilstību reālām lietojumprogrammām.

WebAssembly koda optimizēšana veiksmīgai benchmarkēšanai

WebAssembly (Wasm) koda optimizēšana mikrobenchmarking panākumiem prasa izsmalcinātu pieeju, kas līdzsvaro koda skaidrību, veiktspēju un Wasm izpildes vides unikālos raksturlielumus. Mikrobenchmarki ir ļoti jutīgi pret smalkiem neefektivitātēm, tāpēc izstrādātājiem rūpīgi jāseko līdzi gan ģenerētajam Wasm bytecode, gan JavaScript saistīšanas kodam, kas bieži apkārt tam ir. Viena galvenā stratēģija ir minimizēt funkciju izsaukumu pārejas starp JavaScript un Wasm pārslēgu, jo bieža robežšķērsošana var izkropļot benchmark rezultātus un maskēt Wasm koda patieso veiktspēju. Kritisko funkciju inline un datu pārsūtīšanas paketošana var palīdzēt samazināt šo papildu slodzi.

Vēl viens svarīgs apsvērums ir Wasm specifisko optimizācijas karogu izmantošana kompilēšanas laikā. Piemēram, iespējojot saistītas kompilācijas optimizāciju (LTO) un agresīvu nederiga koda iznīcināšanu, var radīt plānas binārus, kas izpildās efektīvāk mikrobenchmarkos. Izstrādātājiem jāņem vērā arī atmiņas pārvaldības stratēģiju ietekme, piemēram, lineārā atmiņas piešķiršana un manuāla atmiņas pārvaldība, kas var ietekmēt kešatmiņas lokalitāti un izpildes ātrumu. Pārlūkprogrammu ražotāju piedāvātie profilu rīki, piemēram, Google Chrome DevTools, var palīdzēt identificēt šaurās vietas un virzīt mērķtiecīgas optimizācijas.

Visfinally, būtiski nodrošināt, ka mikrobenchmarki ir pārstāvji un nav pārāk pielāgoti specifiskām optimizācijām, kas var nedarboties reālos slodzes apstākļos. Tas ietver mākslīgu kodu modeļu izvairīšanos, kas izmanto zināmas JIT kompilētāja uzvedības vai Wasm dzinēja savdabības. Koncentrējoties uz reāliem, labi optimizētiem kodiem un izmantojot jaunākās kompilācijas tehnikas, izstrādātāji var nodrošināt, ka viņu WebAssembly mikrobenchmarki sniedz nozīmīgus un rīcībai piemērotus ieskatus par veiktspējas raksturlielumiem.

Rezultātu interpretācija: no mikrobenchmarking uz makro veiktspēju

WebAssembly (Wasm) mikrobenchmarku rezultātu interpretācija prasa rūpīgu apsvēršanu, jo ieskati, kas iegūti no izolētiem, nelieliem testiem, ne vienmēr tieši attiecās uz reālo, makro līmeņa lietojumprogrammas veiktspēju. Mikrobenchmarki parasti mēra specifisku Wasm instrukciju, funkciju vai mazu koda fragmentu izpildes ātrumu, bieži kontrolētās vidēs, kas samazina ārējās ietekmes. Lai gan šie rezultāti var uzsvērt Wasm dzinēju izejošo aprēķina efektivitāti vai konkrēto optimizāciju ietekmi, tie var neņem vērā sarežģījumus pilnās lietojumprogrammu slodzēs, piemēram, atmiņas pārvaldību, I/O operācijas vai mijiedarbību ar JavaScript un pārlūkprogrammas API.

Galvenais izaicinājums ir tas, ka mikrobenchmarki var pārmērīgi uzsvērt karsto koda ceļu nozīmi vai specifiskas dzinēja optimizācijas, potenciāli novedot pie maldinošiem secinājumiem par kopējo veiktspēju. Piemēram, Wasm dzinējs var uzrādīt izcilu sniegumu saspringtos ciklos vai aritmētiskajās operācijās mikrobenchmarkos, bet reālās lietojumprogrammas bieži ietver aprēķinus, datu maršrutēšanu un biežas konteksta pārslēgšanas starp Wasm un JavaScript. Šie faktori var ieviest papildu slodzi, kas netiek atspoguļota mikrobenchmarkos, kā norādīts WebAssembly.org un veiktspējas pētījumos no V8.

Lai pārvarētu plaisu starp mikro un makro veiktspēju, ir būtiski papildināt mikrobenchmarking ar makrobenchmarkiem – testiem, kas simulē reālas lietojumprogrammas scenārijus. Turklāt profilu rīki un veiktspējas izsekošana, piemēram, tās, ko nodrošina Mozilla Developer Network (MDN), var palīdzēt identificēt šaurās vietas un kontekstualizēt mikrobenchmark rezultātus plašākā lietojumprogrammas uzvedībā. Visbeidzot, holistiska pieeja, kas apvieno gan mikro-, gan makro līmeņa analīzi, sniedz visvērtīgākos ieskatus WebAssembly optimizācijai ražošanas vidēs.

WebAssembly (Wasm) mikrobenchmarking ainava strauji attīstās, ko veicina Wasm pieņemšanas pieaugums dažādās platformās un tā izpildes vidēm pieaugošā sarežģītība. Kad Wasm nobriest, nākotnē mikrobenchmarkinga tendencēm ir paredzēts koncentrēties uz detalizētākiem un realistiskākiem veiktspējas mērījumiem, kas atspoguļo reālo izmantošanas modeli, nevis sintētiskus, izolētus testus. Viens nozīmīgs virziens ir aparatūrai jūtīgā benchmarking integrācija, kur mikrobenchmarki tiek pielāgoti, ņemot vērā atšķirības CPU arhitektūrās, atmiņas hierarhijās un pārlūkprogrammai specifiskās optimizācijas. Šī pieeja mērķēsniedz nodrošināt vairāk rīcībai piemērotus ieskaitus gan Wasm dzinēju izstrādātājiem, gan lietojumprogrammu autoriem.

Cita jaunā tendence ir benchmarking apvienojuma un metodoloģiju standartizēšana. Centieni, piemēram, WebAssembly kopienas grupa, strādā pie visaptverošu, reproducējamu un caurredzamu benchmarking sistēmu izveidošanas. Šie iniciatīvas palīdz nodrošināt, ka veiktspējas apgalvojumi ir salīdzināmi starp dažādām dzinējām un platformām, veicinot sadarbību ekosistēmā. Turklāt malu datu apstrādes un serverless platformu pieaugums pamudina izstrādāt mikrobenchmarkus, kas vērtē auksto uzsākšanas laikus, resursu izmantošanu un vairāku lietotāju ietekmi, kas ir kritiski Wasm izvietojumam mākoņu vidēs.

Nākotnē ir iespējams arī mašīnmācīšanās tehniku integrācija automatizētajā veiktspējas analīzē un anomāliju atklāšanā Wasm mikrobenchmarking. Šādas attīstības ļaus nepārtrauktu optimizāciju un ātru regresiju identificēšanu. Tā kā Wasm turpina paplašināties ārpus pārlūkprogrammas, benchmarking ainava, iespējams, kļūs arvien dažādāka, kas prasīs pielāgojošus un paplašināmus rīkus, lai sekotu tehnoloģijas attīstībai Pasaules Plašsaziņas Līdzekļu Konsorcijs (W3C).

Secinājums: Labākās praksēs un ņemamās atziņas izstrādātājiem

Efektīva WebAssembly mikrobenchmarking prasa disciplinētu pieeju, lai nodrošinātu, ka rezultāti ir gan precīzi, gan rīcībai piemēroti. Izstrādātājiem jāprioritizē koda izolēšana, minimizējot ārējās ietekmes, piemēram, tīkla latentumu, I/O operācijas vai resursdatoru vides variabilitāti. Izmantojot rīkus, piemēram, WebAssembly Binary Toolkit un pārlūkprogrammu balstītus profilers, var palīdzēt identificēt veiktspējas šaurās vietas un sniegt detālās ieskatu uz izpildes laikiem.

Ir būtiski veikt benchmarkus reālistiskās vidēs, ideāli atspoguļojot ražošanas apstākļus, jo WebAssembly veiktspēja var ievērojami atšķirties starp pārlūkprogrammām un aparatūru. Atkārtoti mērījumi un statistiskā analīze – piemēram, mediana un standarta novirzes aprēķināšana – palīdz mazināt izsistējo ietekmi un sniedz ticamāku veiktspējas profilu. Izstrādātājiem arī jābūt informētiem par JavaScript dzinēju optimizācijām un sasildīšanas efektiem, nodrošinot, ka benchmarki ņem vērā JIT kompilāciju un kešatmiņas uzvedību.

Salīdzinot WebAssembly veiktspēju pret vietējo un JavaScript īstenojumiem, var tikt izcelti optimizācijas jomas un vadīt arhitektūras lēmumus. Uzturot skaidru dokumentāciju par benchmarku iestatījumiem, tostarp koda versijām, kompilatora karogiem un izpildes laiku konfigurācijām, ir būtiski reproducējamībai un kolēģu pārskatīšanai. Visbeidzot, informēšanās par attīstošajām labākajām praksēm un jaunumiem no Pasaules Plašsaziņas Līdzekļu Konsorcija (W3C) WebAssembly darba grupas nodrošina, ka benchmarking stratēģijas paliek saskaņotas ar jaunākajiem standartiem un ekosistēmas attīstību.

Ievērojot šīs labākās prakses, izstrādātāji var gūt nozīmīgus ieskaits no mikrobenchmarkiem, kas noved pie efektīvākām un uzticamākām WebAssembly lietojumprogrammām.

Avoti un atsauces

The Truth about Rust/WebAssembly Performance

ByQuinn Parker

Kvins Pārkers ir izcila autore un domāšanas līdere, kas specializējas jaunajās tehnoloģijās un finanšu tehnoloģijās (fintech). Ar maģistra grādu Digitālajā inovācijā prestižajā Arizonas Universitātē, Kvins apvieno spēcīgu akadēmisko pamatu ar plašu nozares pieredzi. Iepriekš Kvins strādāja kā vecākā analītiķe uzņēmumā Ophelia Corp, kur viņa koncentrējās uz jaunajām tehnoloģiju tendencēm un to ietekmi uz finanšu sektoru. Ar saviem rakstiem Kvins cenšas izgaismot sarežģīto attiecību starp tehnoloģijām un finansēm, piedāvājot ieskatīgus analīzes un nākotnes domāšanas skatījumus. Viņas darbi ir publicēti vadošajos izdevumos, nostiprinot viņas pozīciju kā uzticamu balsi strauji mainīgajā fintech vidē.

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *