Programvareutviklere balansere mange faktorer når de bygger applikasjoner og nettsteder . I den første tiden , da datamaskiner hadde lite lagringsplass og ressurser , var størrelsen og hastigheten de viktigste bekymringer. I dag , med multi -core prosessorer og gigabyte minne , kompleksitet og vedlikeholdbarhet ofte overstyre ytelse. Her er noen av de viktigste faktorene for å vurdere når du velger de riktige algoritmer for prosjektet. Instruksjoner
en
Mål ytelse. Den første faktoren som alltid kommer til tankene når du måler en algoritme er fart . Ingen ønsker å vente på treg programvare. Det er flere måter å finne ut hvilken algoritme vil utføre best for oppgaven . En algoritme kan måles ved å telle instruksjoner manuelt , ved hjelp av sannsynlighetene for å bestemme kjøring stier . Enklere fortsatt er profileringsmaskiner som teller machine sykluser som koden kjøres .
2
Sammenligne koden størrelse. Selv om det ikke er fullt så viktig som ytelse , størrelsen av koden ikke blir noen ganger en faktor . Innebygd programvare og mobile apps ofte behov for å dele begrenset minne , og nettleser - basert kode tar tid å laste ned. Noen ganger kan en liten hit i ytelse kan bli ofret for å barbere en betydelig mengde med kode.
3
Bestem graden 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 virksomhet søknaden kan ofte ha alt fra et par dusin til flere hundre kode moduler , hver med flere hundre linjer med kode . I disse anvendelser , de beste algoritmer er enkel å forstå og lett å implementere . For å måle kompleksitet , telle antall beslutningspunkter , funksjonskall , antall variabler og kompleksiteten av datastrukturer.
4
Sammenligne vedlikeholdbarhet . Nært kombinert med kompleksitet er vedlikeholdbarhet . En algoritme med mindre kompleksitet , presentert med masse tomrom og liberalt overstrødd med velskrevne kommentarer , vil være mye lettere å modifisere når behovene endres . De fleste utviklere bruker langt mer tid på vedlikehold og modifisering av eksisterende kode enn de lage ny programvare .
5
Valider for korrekthet. Ofte oversett i en diskusjon om algoritmer er behovet for en passende algoritme som oppfyller alle krav og arbeider riktig . Koden må returnere presisere innganger, inkludert grensebetingelser og uventede verdier. Filtrene må være på plass for å avvise dårlige data , og avvikshåndtering koden må svare på numeriske overløp , underflows , nettverk feil eller andre forhold .
6
Velg den mest passende algoritme . Det beste valget balanserer alle disse faktorene på en måte som maksimerer ytelsen samtidig minimere kostnadene ved utvikling og eierskap .