D プログラミング言語に精通しているすべての人に、それを組み込みリアルタイム環境で使用するにはどうすればよいでしょうか? 元の設計がリアルタイム組み込み環境を対象としていないことは理解していますが、この質問は、リアルタイム機能を実現する方法についての質問です。
言語のどの構成要素が不可欠でしょうか?
どの構造が問題になると思いますか?
組み込みシステムで成功した人はいますか?
他の考えや提案は素晴らしいでしょう。
D プログラミング言語に精通しているすべての人に、それを組み込みリアルタイム環境で使用するにはどうすればよいでしょうか? 元の設計がリアルタイム組み込み環境を対象としていないことは理解していますが、この質問は、リアルタイム機能を実現する方法についての質問です。
言語のどの構成要素が不可欠でしょうか?
どの構造が問題になると思いますか?
組み込みシステムで成功した人はいますか?
他の考えや提案は素晴らしいでしょう。
D は、実際にはリアルタイム アプリケーションで使用するためのものではありません。主な理由は、D の一部の言語機能がそのガベージ コレクターに依存しており、D のガベージ コレクターは予測不可能であり、散発的にプログラムを一時停止してガベージを収集するためです。引用:
ガベージ コレクションは万能薬ではありません。いくつかの欠点があります。
- コレクションがいつ実行されるかは予測できないため、プログラムは任意に一時停止できます。
- コレクションの実行にかかる時間に制限はありません。実際には非常に高速ですが、これは保証できません。
- コレクションの進行中は、コレクター スレッド以外のすべてのスレッドを停止する必要があります。
ガベージ コレクターなしで D を引き続き使用できます (C/C++ のようにメモリを手動で管理することにより)。これにより、連想配列や、メモリへの参照を解放/返すことなくメモリを内部的に割り当てるライブラリ関数などの特定の言語機能を使用できなくなります。 . D は、メモリ管理に依存しない多くの分野 (メタプログラミングなど) で優れています。
リアルタイムは、「リアルタイム」パフォーマンスよりも保証に関するものです。そのため、2 つの可能性があります。