Hvis jeg nu har et stykke kode hvor hastigheden er altafgørnde. Altså det skal køres så hurtigt som muligt. Vil det optimale så ikke være at lave det hele uden klasser og funktioner. Altså ustruktureret. Koden skal ikke se flot ud bare køre så hurtig som muligt...
ps. Ved godt det vil være svært at rette i osv. men er nysgerrig
Det er rigtig nok, at du sparer lidt tid til funktionskald o.lign. ved at undlade at bruge klasser og struktureret fremgangsmåde, etc., men jeg ville nok tænke mig om en ekstra gang, før jeg begyndte på dén slags.
Hvis der er nogen specielt kritiske funktioner kunne du evt. overveje at lave dem i assembler - men vær opmærksom på, at du skal være rigtig dygtig til det, hvis du skal være i stand til at lave noget, der er hurtigere end det, en moderne compiler genererer.
Det kommer selvfølgelig an på problemstillingen, hvad der vil være smartest at gøre.
Det kan også ofte betale sig at optimere på andet end ting der udføres i konstant tid. Fx har det stor betydning om eksekveringstiden vokser med n^2 eller log(n)*n, hvor n er størrelsen på input. Tjek fx alle løkker efter om de kan nøjes med at køre færre gange end først antaget. Denne form for optimering er nemmere hvis din kode er struktureret.
Og så er der det gode gamle citat (jeg har glemt hvem pokker det var der sagde det):
Premature optimization is the root of all evil.
Lav det du skal lave, og lav så nogle undersøgelser om det yder godt nok. Hvis ikke, så analyser problemet, find ud af hvor flaskehalse er, og så koncentrer dig om at optimere flaskehalse.
Det giver dig noget godt struktureret kode, som er til at vedligeholde (i hvert fald for størstedelen af det). Der vil så måske være dele af koden hvor du har optimeret så meget at det ikke er så nemt at se hvad pokker det laver. Der er det så vigtigt at dokumentere rigtig godt hvad pokker det er der foregår.
Og så vil jeg give tossen ret i det han skrev i det tidligere indlæg. Algoritmeoptimering giver som regel et bedre resultat.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.