Beste svaret
Spørsmål: Hva betyr 01001001 i binær kode?
Svar: I hvilken sammenheng?
01001001 på og IBM 360 er hex 49 eller CH som er Sammenlign Half Word-opcode. Det legges inn på et IBM-kort som 12–1–8 slag.
01 001 001 Gruppert som oktalt er 1 1 1 så på en CDC 600 ville dette være “A9”
I feltdata på en Univac vil dette være tegnet «D»
Hva er kontekst?
Svar
Windows 10 kjører allerede som binær kode (maskin Språk). Den ble samlet fra kildekode (for det meste C og C ++) ned til maskinkode (binær) ved hjelp av optimalisering av kompilatorer.
Så da blir spørsmålet … kan en person (faktisk en stort team med eksperter med et gigantisk budsjett og mye tid) omskriver Windows 10 fra bunnen av på maskinspråk, og oppnår bedre ytelse enn maskinspråket generert av de optimaliserende kompilatorene som brukes i dag?
Optimizer er veldig bra i disse dager – så bra at det kan være vanskelig å finne generert kode som kan håndoptimaliseres for å yte bedre og på samme nivå av pålitelighet. Husk at det er omtrent 50 millioner linjer med høyt nivå språkkildekode i Windows 10, og hver av disse linjene kan potensielt oversettes til mange linjer med monteringsspråk, og hver linje med monteringsspråk oversettes vanligvis til mellom ett og flere byte med maskinkode.
Med alt dette i bakhodet, hvis vi snakker om en fullstendig omskrivning av operativsystemet fra bunnen av i maskinkode, vil ikke 99\% (eller mer) av innsatsen resultere mer effektiv maskinkode, slik at en del av innsatsen ville bli bortkastet. Og de gjenværende mulige 1\% av tilfellene der koden kan fungere bedre, vil koste astronomiske kostnader. Og det er hvis du kunne finne nok eksperter med nok forståelse av arkitekturen til å av og til skrive bedre kode enn den optimaliserende kompilatoren kan generere.
Hvis noen (eller et team) skulle prøve denne oppgaven, ville den riktige tilnærmingen være å bruke profileringsverktøy for å lete etter CPU-bundne flaskehalser i operativsystemet, se nøye på den kompilatorgenererte koden og se om håndjustering av koden (eller en endring i kompilatoroptimaliseringsalternativene) kan forbedre ytelsen. / p>
Siden omtrent 1989 har Microsoft faktisk hatt et team på plass for å nøye analysere ytelsen til forskjellige operativsystemkomponenter, se etter flaskehalser og gjøre forbedringer på disse områdene.
Det er den rette måten å optimaliser programvaren generelt: Mål faktisk, se etter flaskehalser og se hva som kan gjøres med hver enkelt.
Bare å omskrive et helt gigantisk programvareprodukt på et lavt nivå språk er enormt sløsing med tid og ressurser .