私は実行時の型情報に関連するものについて考えています。私よりもはるかに大きなプロジェクトで作業するプログラマーからのフィードバックがほしいです。 1つのプロジェクトに65536(2^16)以上のユーザー定義型(クラスと構造体)を持つプログラムがあると期待するのは妥当ですか?これはではなく、の平均65536インスタンスを意味し、65536 タイプを意味します。コンパイラがどのプロジェクトでも65536個のクラス/構造体に制限されていたとしても、実際には全く問題になりませんか?大きなプロジェクトで65536を超えるユーザー定義型を持つことは妥当ですか?
0
A
答えて
1
いいえ、その時点でプロジェクトを強く分離する必要があるためです。 「公共に直面する」タイプだけがプロジェクト全体で相互に作用する必要があります。その場合、制限は次のようになります。プロジェクトごとに最大2^16種類、すべてのプロジェクトで最大2^16の公開向きの種類があります。
0
誰がタイプ情報== 16ビット番号と言っていますか?
1
私はこれを環境の制約と考えています。システムによっては、自動的にタイプが生成されます。これらの機会には、多数のタイプが作成されます。これらが65536の近くにない場合でも、なぜそのような制限を課したいと思いますか?
最近のアプリケーション/システムでは、すべてのオブジェクトの数はシステムメモリによってのみ制限されています。これは、他の制限がある場合は後退します。
1
優先順位の問題です。プロジェクトの現在のスコープで正当な種類の「無限」を実装するのに費やす時間(およびコードの量)はありますか?
また、プロジェクト/コンパイラが大きくなるにつれて保守性を考慮する必要があります。
私は、肥満の種類のような特殊なケースでは、これを具体的にターゲティングしていない場合には考慮しないと言っています。あなたのターゲットオーディエンスは誰ですか?
はUPDATE:あなたが実際にそれが明確に文書化されている限り(メモリなど、実行速度、のような)他のいくつかの局面では、より効率的になるために自分自身を制限したい場合がありますいくつかのケースで 私は、あなたがすべきだと思いますあなたの特定のニーズに合ったものを選んでください。
関連する問題
- 1. Clyther/OpenCLで65536を超える処理バッファー
- 2. レプリケートするロブデータの挿入長が最大値を超えた場合65536
- 3. XMLスキーマでユーザー定義データ型を定義する方法は?
- 4. javascriptイベントハンドラをリファクタリングする - これは妥当なことですか?
- 5. C++で2つのユーザー定義オブジェクトを型キャストすることは可能ですか?
- 6. 1つの定義ルール:対応するエンティティが異なる名前を持つことはできますか?
- 7. 妥当性エラーは大きな問題ではありませんか?
- 8. cx_Oracleとユーザー定義型
- 9. パワーシェルを使用して15GBを超える大きなデータベースを復元することができません
- 10. tmのstemCompletionの最大の妥当なサイズですか?
- 11. 1つのDataMapperプロパティの妥当性をチェックできますか?
- 12. __setattr __()は__slots__を持つクラスで定義できますか?
- 13. 2つの異種フィールドに基づいて妥当性チェックを設定することは可能ですか
- 14. SQL CLRのユーザー定義型にテーブル値の*メソッド*を作成することはできますか?
- 15. パラメータがデフォルト値を持つときに型を定義する構文は何ですか?
- 16. ヒープ上に大きなオブジェクトを持つことは悪いですか?
- 17. これはjunitでユーザーインターフェイスをテストするための妥当なアプローチですか?
- 18. 多くのオブジェクトがオブジェクト間の関係を定義する妥当性(開始 - 終了)を持つモデルドメイン
- 19. 受信メッセージ(65536)の最大メッセージサイズクォータが超過しました
- 20. 現代ゲームでOpenGL 3.2をターゲットにすることは妥当ですか?
- 21. カスタム値を持つ型を定義する方法は? (typedef、enum)
- 22. これはSQLiteの妥当なターゲット負荷ですか?
- 23. 大きいファイルを保存するとframeLimitを超えます
- 24. CUFONは超大型スライダー
- 25. 超大型API onClick
- 26. Pythonでは、isinstanceを使用して特定のタイプの例外をチェックすることは妥当ですか?
- 27. Rubyでデフォルトの引数を持つブロックを定義することはできますか?
- 28. ユーザーのテストをテストできますか?彼らはユーザー名を持つことができますか?
- 29. Linqグループをユーザー定義型にする
- 30. 6つの値を保持できるC++で可能な限り小さいデータ型を定義する
これは私が検討しているスキームのための仮説です。 – dsimcha
さて、それを32ビットの数値にして、クラスあたり2バイト追加すると、多くの問題を引き起こすことはありません。 –
ガベージコレクタによって格納されたRTTIへのポインタと関係しているので、* instance *あたり2バイト余分になります。 – dsimcha