問題タブ [soft-real-time]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
garbage-collection - リアルタイム システムのガベージ コレクタ
私は C#/Java が初めてで、ソフト リアルタイム システム用にプロトタイプを作成する予定です。
メモリ管理に関して C++ で行うのと同じように C#/Java アプリを作成した場合、つまり、使用しなくなったオブジェクトを明示的に「削除」した場合、アプリはガベージ コレクターの影響を受けますか? もしそうなら、それは私のアプリにどのように影響しますか?
これが明白な答えのように聞こえる場合は申し訳ありませんが、新しいので、徹底したいと思います。
architecture - ゲームはリアルタイム システムと見なすことができますか?
私はリアルタイムシステムとそれらがどのように機能するかなどについて読んでいます。ウィキペディアの記事も見ていました。プログラムは計算する必要があるため、動きごとにタイマーを使用するチェスのゲームはリアルタイムシステムと見なすことができると述べていますその時の動き。他のゲームはどうですか?私たちが知っているように、ゲームは通常 25+ FPS で実行しようとしますが、それが 25 を下回った場合 (私は事前に定義されたしきい値として 25 を使用しています)、それはゲームの終わりではないため、ソフト リアルタイム システムと見なすことができます。世界、私たちが望んでいたパフォーマンスへのヒットですか?
また、ゲームには、処理しなければならないイベントもあります。ユーザーはキーボード/マウスを使用し、ゲームが「失敗」したと見なされる前に、システムは事前に定義された時間内に (再び) これらのイベントに応じて応答する必要があります。
ああ、私は今のところ、物事を単純にするためにシングルプレイヤーについて話しています.
ゲームはソフト リアルタイム システムの基準に適合しているように思えますが、不足しているものがあれば教えてください... ありがとうございます。
performance - ゲームのようなソフト リアルタイム アプリケーションでの Haskell の GC パフォーマンスはどうですか?
ゲーム ルール ロジックは非常に複雑なものを処理する必要があることがわかったので、ゲーム内ロジック スクリプト言語として、ゲーム分野で一般的ではない言語を使用することを検討しています。ゲーム内スクリプトの理由は、より少ないコードで複雑なロジックを表現することです。そのため、非常によく抽象化された言語が必要です。
しかし、よく抽象化された言語のほとんどは GC を使用します。通常、GC は CPU にバースト負荷をかけます。基本的にメモリのクリア操作は後回しにして、一気に行います。ゲームや GUI を含むリアルタイム グラフィックスにとって非常に重要です。
私の知る限り、Haskell の GC は他の GC ベースの言語とは少し異なり、その不変属性が原因です。想像するのは難しいです。これを詳細に説明したドキュメントは見つかりませんでした。
何が違うの?また、長時間実行するプログラムの CPU バーストは無料ですか? (時間の経過とともに負荷が十分に分散され、ティックごとに手動の完全な GC コマンドを呼び出すことができます)
real-time - Firebase はハード リアルタイム計算に適していますか?
私は最近 Firebase に出会い、非常に興味深いと感じました。
ハード リアルタイムとソフト リアルタイムの違いを読んで、Firebase がハード リアルタイム計算に適しているかどうかに興味があります。
私の直感では、これはソフト リアルタイムにのみ適していると思いますが、この感覚を真に検証する (SaaS としての性質を除いて) ものはほとんどありません。
real-time - 通信ミドルウェアはソフト リアルタイム アプリケーションをどのようにサポートできますか?
現在、「リアルタイム」という概念にはさまざまな解釈があります。この質問では、 2 つの定義が提供されます。
ハード リアルタイムの定義では、締め切りに間に合わなかった場合はシステム障害と見なされます。このスケジューリングは、タイミングの制約に従わなかった場合に人命や財産が失われるミッション クリティカルなシステムで広く使用されています。
と
ソフト リアルタイム定義により、締め切りに間に合わないことが頻繁にあり、タスクがタイムリーに実行されている限り、その結果には引き続き価値があります。完了したタスクは、締め切りまでは値が増加し、期限を過ぎると値が減少する場合があります。
私の研究では、次の結論に達しました。
- ミドルウェアは、システム リソースに対して予測可能で効率的なエンド ツー エンドの制御を提供する場合、ハード リアルタイムをサポートします。ミドルウェアによって作成されたすべてのスレッドのスレッド優先度を設定するのと同じです。
- 優れたパフォーマンスは、ソフト リアルタイム アプリケーションをサポートするための最も重要な要素のように思えます。
これは本当ですか?ソフト リアルタイム アプリケーションをサポートする通信ミドルウェアのその他の関連機能はありますか?