データ指向のデザインは、このSonyResearchドキュメントとこのドキュメントによって最も正式に紹介されています。
しかし、明らかなことを超えて、プログラミングの他のどの側面が「データ指向設計」に該当するのか疑問に思いました。SIMD / SSE命令はありますか?TLBミスを減らすものはどうですか?またはCPUアフィニティ?
これまでのところ、DODについての私の唯一の理解は、「キャッシュミスを減らすもの」です。データ指向の設計に該当する明らかでないものはありますか?
データ指向のデザインは、このSonyResearchドキュメントとこのドキュメントによって最も正式に紹介されています。
しかし、明らかなことを超えて、プログラミングの他のどの側面が「データ指向設計」に該当するのか疑問に思いました。SIMD / SSE命令はありますか?TLBミスを減らすものはどうですか?またはCPUアフィニティ?
これまでのところ、DODについての私の唯一の理解は、「キャッシュミスを減らすもの」です。データ指向の設計に該当する明らかでないものはありますか?
私にとって明らかなことは、DOD がデータ中心の設計に関するものであることです。文脈でそれをもっと見るために。私はそれのカウンターパートOODの明白な第一印象を取ります。オブジェクト指向は、ソリューションを現実世界のモデルにモデル化することです。そのほうがわかりやすいのでいいです。しかし、あなたのハードウェアはそれを好まない。データ指向はデータ中心です。プラットフォームがそれをどのように気に入っているか。
SMID、キャッシュ ラインは、プラットフォームの詳細の一部です。しかし、それにはキャッシュラインよりもはるかに多くの機能があります。
データ指向により、並行プログラミングは OoD の方法よりもはるかに簡単になります。OOD は、人間にとってはるかにフレンドリーです。誰もが現実の世界を知っているように。DOD は、データをモデル化して最大のパフォーマンスを得るために、プラットフォームについてより多くのことを知る必要があります。また、そのデータに対して行う変換についても説明します。
国防総省とは、プラットフォームを知り、問題のドメインを知ることです。DOD を最大限に活用するには。