プロセスの作業に関連するコンピュータープロセッサの理解には、まだ少しぼんやりしています。具体的には、新しいコンピューターを入手する予定であり、最終的にはAngular Typescript環境(Macを念頭に置いて)で最速のコンパイル時間を取得したいと考えています。
最終的に私は2つのことを理解したいと思っています、
CPUコアを増やすと、コンパイルプロセスのコードコンパイル速度が向上しますか?(または、カーネルはその余分な計算能力を、フォーカスされていない他のバックグラウンドプロセスに割り当てるだけですか)
上記が当てはまる場合、それは自動ですか、それともこれを実現するために渡す必要のある低レベルのオプションがありますか?参考までに、コードのコンパイルはTSLoader(javascript Webpackから)に依存しています。
上記の2つほど単純ではない場合は、重要な要素についてリストされた回答が得られることを期待しています。
これまでのところ、typescriptコードをコンパイルするために、Node.jsenvプロセスが作成されてコードがコンパイルされることを理解しています。
input files Process Output
.ts -> (Webpack -> TSLoader) -> .js
(Node:JIT of Webpack.js to Machine Code)
(Kernel notices window is in focus?? and prioritizes??)
(sends to one or multiple cores??? Hazyness... ???)
(????)
単一のプロセスが複数のコアを利用できるかどうかは、そのコーディング方法に完全に依存します。作業を複数の並列化可能な部分に分割し、各部分を別々のスレッドに割り当てるようにコーディングされている場合、OSはそれらの異なるスレッドに異なるCPUコアを使用できます。
一方、プロセスが、それぞれがほとんど独立して進行できる複数のスレッドを具体的に使用するようにコーディングされていない場合(他のスレッドからの結果を待たずに)、OSはそのプロセスに複数のコアを実際に使用できません。これらの他のコアは、システムで行われている他のこと(他のアプリ、バックグラウンドサービスなど)に使用されますが、メインアプリには使用されません。個々のファイルのコンパイルは、複数のコアに超並列化することはできません。
ただし、多くのファイルを含むプロジェクトコンパイルを検討している場合、複数のコアを使用する可能性が高い方法は、その機能を備えたビルドツール(Microsoftはこれらのビルドオーケストレーションツールと呼びます)を使用して、複数のファイルを個別に並列にコンパイルすることです。これがこのトピックに関するミニディスカッションです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加