エキサイティングな開発として、 parallel Rustc working group 、Rust コンパイラのフロントエンドに並列実行機能を導入することを発表しました。この新しい追加機能はコンパイル時間を大幅に短縮することを目的としており、11 月 9 日に発表されました。
Rust コンパイラ フロントエンドへの並列実行の追加は、現在実験段階にあります。ただし、この堅牢な機能は来年の安定版コンパイラに正式に組み込まれる予定です。一方、開発者は、-Z thread=8 オプションを指定して夜間コンパイラを実行することで、この並列実行機能を直接体験する機会があります。
この新機能の有効性はすでに有望な結果を示しています。 -Z スレッド -8 を利用したマルチスレッド モードで並列フロント エンドをテストしたところ、「現実の」コードから蓄積されたデータにより、コンパイル時間が 50% も短縮できることが明らかになりました。影響のレベルは、開発中のコードの明確な性質やビルド構成に応じて異なります。
作業グループは、開発ビルドにはリリース ビルドよりも大幅な機能強化が加えられる可能性があることを明らかにしました。その理由は、リリース ビルドでは通常、バックエンドの最適化に重点が置かれ、より多くの時間がかかるためです。さらに、最小限のシナリオでは、マルチスレッド モードではシングル スレッド モードに比べてコンパイルに少し時間がかかることがわかりました。これらのケースには通常、すでにコンパイルが容易な小規模なプログラムが含まれます。
作業グループは、コンパイル時間が開発者にとって常に懸念事項であるという事実に光を当てました。長年にわたり、Rust のコンパイラのパフォーマンスは継続的な強化の対象となってきました。現在、コンパイラは徹底的に最適化されており、新たな改善領域を特定するのは困難な作業となっています。同グループが「大規模だが困難が伴う成果」と表現する並列処理の導入により、フロントエンドは Rayon データ並列処理ライブラリを利用して、逐次計算を並列計算に切り替えるようになりました。レーヨンは、きめの細かい平行度を処理できるように特別に設計されています。
作業グループは、最良の結果を得るために 8 つのスレッドを使用して並列実行することを推奨しています。ただし、マルチスレッド モードではメモリ使用量が大幅に増加する可能性があるとも述べています。それぞれ一定量のメモリを必要とするコンパイルのさまざまな部分が並列実行されるため、これは予想どおりでした。このグループは、並列フロントエンドのパフォーマンスを向上させるための取り組みが確実に行われるようにします。
開発者が並列フロント エンドに関連する問題に遭遇した場合は、WG-compiler-Parallel というラベルが付いた問題を調査できます。新しい問題を提出するオプションもあります。 Rust のコンパイルは、 Cargo package managerによるプロセス間並列処理とバックエンドでのプロセス内並列処理のおかげで、すでに進歩しています。この新しい追加が具体化されるにつれて、Rust プログラミング ワークフローの効率がさらに向上することが期待されます。
関連分野であるAppMaster は、顧客がno-codeエンド アプリケーションのデータ モデルを視覚的に考案できるようにすることで話題を呼び、優れたスケーラビリティを実現し、確実な高負荷ユースケースを保証します。従来のツールとは異なり、 AppMaster使用すると、顧客はブラウザ内で Web BP を直接実行できるため、アプリケーション開発プロセスがさらに前進します。