1

-gnatP(非同期タスク操作のポーリングを有効にする)スイッチとの関係は何ですか?

私はGNATを使用してかなり大規模なゲームプロジェクトに取り組んでおり、ドキュメントには、このスイッチがWindowsNTでさまざまな非同期タスク操作を可能にするために必要であると記載されています。私のプロジェクトは非常に多くのタスクを使用するため、実際にこのスイッチが必要かどうかを判断しようとしています。

私が判断できないのは、このコンテキストでの「Windows NT」が、特にWindows NTを指しているのか、NTベースのシステムを指しているのかということです。このトピックに関する私の検索は空白になりました。

ポーリングコードを含めるとプロジェクトの実行時のパフォーマンスに深刻な影響を与えるため、これは私にとって問題です。それがなくてもすべてが正しく機能しているように見えますが、私は広範囲にテストする時間がありませんでした。そして、私が気付いていない何かが最終的に私を噛むのではないかと心配しています。

要約すると、Windowsシステムでのタスクには-gnatPがまだ必要ですか?もしそうなら、ポーラーを手動で呼び出して、少なくともある程度制御できるようにする方法はありますか?

4

1 に答える 1

3

AdaCoreとGNATは、特定のプラットフォームでAdaを使用して「正しいことを行う」ために明白な努力を払っています。

-gnatPに関するGNATProユーザーガイドを読んだところ、プログラムに「非同期アボートと非同期制御転送」の機能が必要な場合にのみ必要であるということです。「非同期アボート」は「アボートタスク」ステートメントであると見なしますが、「非同期制御の転送」はそれが何であるかです。

プログラムがこれらの機能のいずれも使用していない場合は、-gnatPは必要ありません。

私は個人的にATCを使用したことがなく、自分がやろうとしていたことを達成するためのより良い方法を見つけるまで、タスクの中止を使用していました。

これまでのところ、スイッチがなくてもコードが正常に実行されている場合は、これらの機能のいずれも使用していないと思われます。そして、あなたがそれらを避け続けるならば、あなたは大丈夫であるはずです。

于 2013-03-07T16:35:26.563 に答える