Hvordan sammenligne dataalgoritmer

Programvareutviklere balansere mange faktorer når du bygger applikasjoner og nettsteder. I de tidlige dager, når datamaskiner hadde lite lagringsplass og ressurser, størrelse og hastighet var de største bekymringene. I dag, med multi-core prosessorer og gigabyte minne, kompleksitet og vedlikehold ofte overstyre ytelse. Her er noen av de viktigste faktorene for å vurdere når du velger de riktige algoritmer for prosjektet.

Bruksanvisning

1 Måle resultatene. Den første faktoren som alltid kommer til tankene når man måler en algoritme er hastighet. Ingen ønsker å vente på langsom programvare. Det er flere måter å finne ut hvilken algoritme vil utføre beste for oppgaven. En algoritme kan måles manuelt ved telling av instruksjoner, ved hjelp av sannsynligheter for å bestemme utførelse baner. Enklere fortsatt er profilerings som teller machine sykluser som koden kjøres.

2 Sammenlign kode størrelse. Selv om det ikke fullt så viktig som ytelse, størrelsen av koden noen ganger blir en faktor. Innebygd programvare og mobile applikasjoner har ofte behov for å dele begrenset minne, og nettleserbasert kode tar tid å laste ned. Noen ganger kan en liten hit i ytelse kan bli ofret for å barbere en betydelig mengde kode.

3 Bestemme nivået av kompleksitet. De fleste kommersielle programvareutviklere skrive kode utplassert på stasjonære PC-er eller webservere med mye prosessorkraft og mer enn nok minne. I dag er den største utfordringen i å håndtere kompleksitet. En ganske enkel forretningsapplikasjon kan ofte ha alt fra et par dusin til flere hundre kode moduler, hver med flere hundre linjer med kode. I disse programmene, de beste algoritmene er enkle å forstå og lett å implementere. For å måle kompleksitet, telle antall beslutningspunkter, funksjonskall, antall variabler og kompleksiteten i datastrukturer.

4 Sammenligne vedlikeholdbarhet. Nært kombinert med kompleksitet er vedlikeholdbarhet. En algoritme med mindre kompleksitet, presentert med masse tomrom og rikelig drysset med velskrevet kommentar, vil være mye lettere å endre når behovene endres. De fleste utviklere bruke langt mer tid å opprettholde og modifisere eksisterende kode enn de skape ny programvare.

5 Validere for korrekthet. Ofte oversett i en diskusjon av algoritmer er behovet for en passende algoritme som tilfredsstiller alle krav og fungerer korrekt. Koden må returnere nøyaktige resultater for innganger, inkludert grensebetingelser og uventede verdier. Filtre må være på plass for å avvise dårlige data, og avvikshåndtering koden må svare på numeriske overløp, underflows, nettverksfeil eller andre forhold.

6 Velg den mest passende algoritme. Det beste valget balanserer alle disse faktorene på en måte som maksimerer produktiviteten samtidig som kostnadene for utvikling og eierskap minimeres.