だから、〜4層の深さのカスタムタイプ階層を持つC#アプリケーションがあります。C#のDSL /カスタムタイプのツールキット?
このレイヤーは、データの検証と変更イベントの伝達を完全に実装するために存在します。
例は、 DocumentNameValue -> NameValue - > StringValue -> BaseDataValue
です。
システムは正常に動作しますが、間接的なすべてのレイヤー、パフォーマンスサーファーが与えられています。絶対的に言えば、それは大ヒットではありませんが、それは追加します。
パフォーマンスの問題は、データアクセスで発生するネストされた呼び出しの結果であると考えられます。
たとえば、DocumentNameValue.setValue("test.doc")
を呼び出すと、入力の特定の検証テストを実行する各階層の階層が作成されます。これらはベースで始まり、上に移動します。様々なイベントも途中で解雇されます。値が実際に階層の基底に「格納されている」場合は、意味があります。
私は本当にやったすべては種類の厳密な階層を定義しているので、のいずれかを実行するための推奨方法は存在しない:
- は「フラット」の高性能と同等にして、このC#のコードを変換しますか? (実行時またはコンパイル時)
- おそらく、型/オブジェクトの等価なリストを吐き出すだけのDSLを構築するのは良いでしょうか?
全体的な目標は2つあります。私のアプリケーションの問題のドメインに固有の強力なタイプを用意して、妥当性検査ルールを入れるためのきれいな場所を用意します。
誰でもヒント/提案を提供できますか?私はこれをすべて間違っているのですか?
は
あなたは、階層がパフォーマンス上の問題と関係していると思われる理由、またはパフォーマンス上の問題が発生していることさえあります。 –