Bästa svaret
Fråga: Vad betyder 01001001 i binär kod?
Svar: I vilket sammanhang?
01001001 på och IBM 360 är hex 49 eller CH som är jämförelse med halv ordskod. Det matas in på ett IBM-kort som 12–1–8 stansning.
01 001 001 Grupperad som oktal är 1 1 1 så på en CDC 600 skulle detta vara “A9”
I fältdata på en Univac skulle detta vara karaktären ”D”
Vad är sammanhang?
Svar
Windows 10 körs redan som binär kod (maskin språk). Det kompilerades från källkod (mestadels C och C ++) ner till maskinkod (binär) med hjälp av optimeringskompilatorer.
Så då blir frågan … kan en person (faktiskt en stort team av experter med en gigantisk budget och mycket tid tid) skriver om Windows 10 från grunden i maskinspråk och uppnår bättre prestanda än maskinspråket som genereras av de optimeringskompilatorer som används idag?
Optimizers är mycket bra idag – så bra att det kan vara svårt att hitta genererad kod som kan handoptimeras för att prestera bättre och på samma nivå av tillförlitlighet. Tänk på att det finns ungefär 50 miljoner rader med högnivåspråklig källkod i Windows 10, och var och en av dessa rader kan potentiellt översättas till många rader med monteringsspråk, och varje rad med monteringsspråk översätts vanligtvis till mellan en och flera byte av maskinkod.
Med allt detta i åtanke, om vi talar om en fullständig omskrivning av operativsystemet från grunden i maskinkod, skulle 99\% (eller mer) av ansträngningen inte resultera mer effektiv maskinkod, så att en del av ansträngningen skulle slösas bort. Och de återstående möjliga 1\% av fallen där koden kan fungera bättre skulle kosta en astronomisk kostnad. Och det är om du kunde hitta tillräckligt många experter med tillräcklig förståelse för arkitekturen för att ibland kunna skriva bättre kod än den optimerande kompilatorn kan generera.
Om någon (eller något team) skulle försöka den här uppgiften skulle rätt tillvägagångssätt vara att använda profileringsverktyg för att leta efter CPU-bundna flaskhalsar i operativsystemet, titta noga på den kompilatorgenererade koden och se om någon handjustering av koden (eller en förändring av kompilatoroptimeringsalternativen) skulle kunna förbättra prestanda.
Sedan omkring 1989 har Microsoft faktiskt haft ett team på plats för att noggrant analysera prestanda för olika OS-komponenter, leta efter flaskhalsar och göra förbättringar inom dessa områden.
Det är rätt sätt att optimera programvara i allmänhet: Mät faktiskt, leta efter flaskhalsar och se vad som kan göras åt var och en. .