med Assembler kunne du sandsynligvis gøre programmet 10-100 gang hurtigere. Det er værd at notere at det rent faktisk ikke er så vældig meget. Istedet for "alle primtal op til 10^8" ville du så finde "alle primtal op til 10^10". Du kan sædvanligvis få langt større effekt ud af at optimere din algoritme.
- På hvilket lav-niveau er det realistisk at programmere et sådan program?
Helt ned på assembler niveau
- Er det utopisk af mig at tro jeg vil kunne køre det uden styresystem?
Stort set ja. Styresystemet gør en hulens masse ting som du så ville blive nødt til at programmere selv. Styre harddisken fx. men et assembler program kan også sagtens køre under Windows.
- Hvis nu jeg udviklede det i assembly og kørte det i XP ville forskellen så være stor i forskel til programmet udviklet i .NET, som jo kører på en vitual machine?
Ja, Lidt mere end jeg nævnte først, Den Virtuelle Maskine er en ekstra omkostning.
- Og hvor kan man komme igang med dette, hvis man er helt ny i assembly?
Som sedvanligt vil jeg anbefale du starter med et LILLE projekt. Skær ambitionsniveauet helt ned til benet før du overhovedet går igang, ingen kønne vinduer, ingen brugerinput, bare en masse tal i en fil, så har du gode chancer. Here er et par sites:
http://www.programmersheaven.com/zone5/index.htmhttp://www.xs4all.nl/~smit/asm01001.htm gode forklaringer.
Ofte når et program skal optimeres med assembler vælger man nogle få dele af programmet og skriver bare dem som subrutiner i assembler. Som regel bruger programmet 90% af sin tid i 10% af koden så ved at optimere bare de 10% kode tjener du 90% af den mulige forbedring. Og samtidig kan du så bruge alle de fancy biblioteks funktioner til at tegne vinduer osv. Jeg ved ikke hvordan det gøres i .net, men jeg er 100% sikker på at .net også har et lavniveau interface (ligesom JNI i Java)
mvh JakobA