Welcome to Our Website

Rask Treff: Legger til Elementer i en Matrise og en Titt på Ytelse

jeg hadde noen kommentarer på en siste opptreden sammenligning artikkel som ble godt mottatt og oppmuntret meg til å skrive noen flere av disse lignende artikler. Så uten videre, lar komme i gang med å se på de legger til elementer i en matrise og som tilnærming ville være bedre i form av ytelse.

Vanligvis den mest vanlige tilnærmingen som jeg ser med å legge elementer til en matrise i PowerShell er gjennom bruk av += operatør.,

 $a = @()$a += 'data'$a$a += 'test'$a

jeg hadde til første initialiseringen av matrisen, ellers er mitt forsøk på å legge til teksten ville i stedet behandles som å slå sammen tekst, som er ikke hva jeg er ute etter i dette eksemplet. Som jeg sa, dette er den felles tilnærming, slik jeg ser det, men er det nødvendigvis den raskeste veien å gå? Vel, svaret er nei.

ved Hjelp av en ArrayList

svar til bedre ytelse er i bruk av en ArrayList. Som du kan se mer og mer med å få bedre ytelse ut av PowerShell, vil du vanligvis se en bevege seg mot ved hjelp av noen .,Netto forekomster på for å utføre lignende operasjoner som kan gjøres ved hjelp av faktiske PowerShell-kommandoer eller operatører. Så noe som jeg gjorde ovenfor kan gjøres som følgende:

 $a = New-Object System.Collections.ArrayList$a.Add('data')$a.Add('test')$a

0 og 1 som du ser blir outputted hver gang jeg legger du til et element viser indeksnummeret for elementet ble lagt inn i samlingen. Så «data» ble lagt på 0-indeks og «test» ble lagt til i 1 indeks. Dette kan være ganske irriterende i min mening og kan forurense rørledningen og gi uønskede resultater. Du kan komme rundt dette ved å sørge for at data som er sendt til en Null-posisjon.,

Vi har to alternativer for å lage en samling av elementer satt opp før oss, men det neste spørsmålet er hvilken som er den raskeste? La oss finne ut!

jeg kan ikke si at ArrayList vunnet hver gang…vent, jeg sier det! Som det totale antallet elementer som er lagt til hver samling økt, den gang også økt for hvert av de tilnærminger som er med += økende ganske dramatisk på slutten. Hva skjer med += operatør er at det faktisk bygger ut en ny array hver gang du bruker operatøren, slik at det kan legge til det nye elementet til samlingen., Ikke akkurat effektivt, men det får jobben gjort. Du vil ikke finne at med ArrayList tilnærming som det legger til elementet rett inn i samlingen.

Som sammen med noen av disse typer av ytelse tester, jeg dekket den enkle opp den ekstreme typen situasjoner, så hvis du absolutt ønsker å presse alle mulige millisekund ut av PowerShell script, så du vil definitivt ønsker å se på ArrayList tilnærming.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *