ベストアンサー
質問:01001001はバイナリコードで何を意味しますか?
回答:どのような状況で?
01001001がオンで、IBM 360は16進数49またはCHであり、これはハーフワードオペコードの比較です。これは、IBMカードに12–1–8パンチとして入力されます。
01 001 001 8進数としてグループ化されると、1 1 1であるため、CDC600では「A9」になります
Univacのフィールドデータでは、これは文字「D」になります
コンテキストとは何ですか?
回答
Windows 10はすでにバイナリコード(マシン)として実行されています言語)。最適化コンパイラを使用して、ソースコード(主にCおよびC ++)からマシンコード(バイナリ)にコンパイルされました。
したがって、問題は…人になります(実際には、大規模なチームエキスパートと巨大な予算および多くの時間)Windows 10を機械語で最初から書き直し、現在使用されている最適化コンパイラによって生成された機械語よりも優れたパフォーマンスを実現しますか?
オプティマイザーは最近非常に優れています。非常に優れているため、同じレベルの信頼性でパフォーマンスを向上させるために手動で最適化できる生成コードを見つけるのは難しい場合があります。 Windows 10には約5,000万行の高級言語ソースコードがあり、それらの各行は潜在的に多くのアセンブリ言語行に変換される可能性があり、アセンブリ言語の各行は通常1〜数行に変換されることに注意してください。マシンコードのバイト数。
これらすべてを念頭に置いて、マシンコードでOSを最初から完全に書き直すことについて話している場合、99%(またはそれ以上)の作業でそれ以上の結果は得られません。効率的なマシンコード。これにより、作業の一部が無駄になります。そして、コードのパフォーマンスが向上する可能性のある残りの1%のケースは、天文学的なコストがかかります。そしてそれは、アーキテクチャを十分に理解し、最適化コンパイラが生成できるよりも優れたコードをときどき書くのに十分な専門家を見つけることができた場合です。
誰か(または一部のチーム)がこのタスクを試みる場合、正しいアプローチはプロファイリングツールを使用してOSのCPUにバインドされたボトルネックを探し、コンパイラによって生成されたコードを注意深く調べ、コードの手動調整(またはコンパイラ最適化オプションの変更)によってパフォーマンスが向上するかどうかを確認します。
1989年頃から、Microsoftは実際に、さまざまなOSコンポーネントのパフォーマンスを注意深く分析し、ボトルネックを探し、それらの領域を改善するためのチームを配置しています。
これが正しい方法です。ソフトウェア全般の最適化:実際に測定し、ボトルネックを探し、それぞれについて何ができるかを確認します。
巨大なソフトウェア製品全体を低レベルの言語で書き直すだけでは、時間とリソースの大きな浪費になります。 。