Welcome to Our Website

Pika-Osumat: Lisäämällä Kohteita Array ja Tarkastella Suorituskykyä

minulla oli joitakin kommentteja tuoreessa suorituskyvyn vertailu artikkeli, joka otettiin hyvin vastaan ja kannusti minua kirjoittamaan lisää näitä vastaavia artikkeleita. Joten pitemmittä puheitta, voit aloittaa katsomalla lisäämällä kohteita array ja mikä lähestymistapa olisi parempi suorituskyvyn.

tyypillisesti yleisin lähestymistapa, että näen lisäämällä kohteita array Powershellissa on käyttämällä += operaattori.,

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

piti ensin alustaa array, muuten minun yrittää lisätä tekstiä olisi sen sijaan pidettävä ketjuttamalla tekstiä, joka ei ole sitä mitä etsin tässä esimerkissä. Kuten sanoin, tämä on yhteinen lähestymistapa, jonka näen, mutta onko se välttämättä nopein lähestymistapa? Vastaus on ei.

ArrayList

vastaus parempaan suorituskykyyn on Arraylistin käytössä. Kuten saatat nähdä enemmän ja enemmän saada paremman suorituskyvyn PowerShell, näet tyypillisesti siirtyä käyttämään joitakin .,Net instances suorittaa samanlaisia toimintoja, jotka voidaan tehdä käyttämällä todellisia PowerShell komentoja tai operaattoreita. Joten jotain, että tein edellä voidaan tehdä esimerkiksi seuraavasti:

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

0 ja 1, että näet on tulostetaan joka kerta lisätä kohteen ilmaisee indeksi, jonka kohde oli lisätty osaksi kokoelma. Niinpä 0-indeksiin lisättiin ”data” ja 1-indeksiin ”test”. Tämä voi olla mielestäni aika ärsyttävää, ja se voi saastuttaa putken ja tuoda ei-toivottuja tuloksia. Voit kiertää tämän varmistamalla, että tiedot lähetetään Nollapaikkaan.,

– Meillä on kaksi vaihtoehtoa luoda kokoelma kohteita perustettu ennen meitä, mutta seuraava kysymys on, mikä niistä on nopein? Otetaan selvää!

en sano, että ArrayList voitti joka kerta…odota, sanon, että! Kuten kokonaismäärä kohteita lisätään jokaisen kokoelma kasvoi, kun myös lisääntynyt kunkin lähestymistapoja kanssa += kasvaa melko dramaattisesti lähellä loppua. Mitä tapahtuu += operaattori on, että se todella perustuu ulos new array joka kerta, kun käytät operaattorin niin se voi lisätä uuden kohteen kokoelma., Ei kovin tehokas, mutta se saa homman hoidettua. Et löydä sitä ArrayList lähestymistapa, koska se lisää kohteen suoraan kokoelmaan.

Kuten minkä tahansa näistä tyyppisiä suorituskyvyn testit, katettu yksinkertainen jopa äärimmäinen tyyppi tilanteita, joten jos olet ehdottomasti haluavat puristaa kaikki mahdolliset millisekunnin ulos PowerShell skriptejä, sinun olisi ehdottomasti haluat tarkastella ArrayList lähestymistapa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *