최상의 답변
질문 : 바이너리 코드에서 01001001은 무엇을 의미합니까?
답 : 어떤 맥락에서?
01001001 on 및 IBM 360은 16 진수 49 또는 CH (Compare Half Word opcode)입니다. IBM 카드에 12–1–8 펀치로 입력됩니다.
01 001 001 8 진수로 그룹화하면 1 1 1이므로 CDC 600에서는 “A9″가됩니다.
Univac의 현장 데이터에서 이것은 문자 “D”가 될 것입니다.
컨텍스트는 무엇입니까?
답변
Windows 10은 이미 바이너리 코드 (컴퓨터 언어). 최적화 컴파일러를 사용하여 소스 코드 (대부분 C 및 C ++)에서 기계 코드 (바이너리)까지 컴파일되었습니다.
그러면 질문은… 사람이 될 수 있습니다 (실제로는 iv id = “fc4a4d064f 거대한 예산을 가진 “>
대규모 전문가 팀 그리고 많은 시간 ) Windows 10을 기계어로 처음부터 다시 작성하고 오늘날 사용되는 최적화 컴파일러에서 생성 된 기계어보다 더 나은 성능을 달성합니까?
최적화 도구는 요즘 매우 훌륭합니다. 매우 훌륭해서 동일한 수준의 안정성으로 더 나은 성능을 발휘하도록 수동으로 최적화 할 수있는 생성 된 코드를 찾기가 어려울 수 있습니다. Windows 10에는 대략 5 천만 줄의 고급 언어 소스 코드가 있으며 이러한 각 줄은 잠재적으로 여러 줄의 어셈블리 언어로 번역 될 수 있으며 어셈블리 언어의 각 줄은 일반적으로 하나에서 여러 줄로 번역됩니다. 기계 코드 바이트.
이 모든 것을 염두에두고 OS를 처음부터 기계 코드로 완전히 재 작성하는 것에 대해 이야기하고 있다면 99 \% (또는 그 이상)의 노력으로 더 많은 결과를 얻지 못할 것입니다. 따라서 노력의 일부가 낭비됩니다. 코드가 더 잘 수행 될 수있는 나머지 1 \%의 경우에는 천문학적 비용이 발생합니다. 그리고 이는 최적화 컴파일러가 생성 할 수있는 것보다 더 나은 코드를 작성할 수있는 아키텍처에 대한 충분한 이해를 가진 충분한 전문가를 찾을 수있는 경우입니다.
누군가 (또는 일부 팀)가이 작업을 시도한다면 올바른 접근 방식이 될 것입니다. 프로파일 링 도구를 사용하여 OS에서 CPU 바운드 병목 현상을 찾고, 컴파일러 생성 코드를주의 깊게 살펴보고, 코드의 수동 조정 (또는 컴파일러 최적화 옵션 변경)이 성능을 향상시킬 수 있는지 확인하는 것입니다.
1989 년경부터 Microsoft는 실제로 다양한 OS 구성 요소의 성능을주의 깊게 분석하고 병목 현상을 찾아 해당 영역을 개선 할 팀을 구성했습니다.
그게 올바른 방법입니다. 일반적으로 소프트웨어 최적화 : 실제로 측정하고 병목 지점을 찾고 각각에 대해 수행 할 수있는 작업을 확인합니다.
거대한 소프트웨어 제품 전체를 저수준 언어로 다시 작성하는 것은 시간과 리소스를 낭비하는 것입니다. .