STLの思想を応用し、特定の分野に特化した高性能ライブラリがどのように作られているか、シミュレーションで探求しましょう。
事例1:ゲームエンジン 🎮 Entity-Component-System (ECS)
大量のオブジェクトを効率的に処理するため、データを部品(Component)ごとにまとめて管理します。この「データ指向設計」がCPUキャッシュ効率をいかに向上させるか見てみましょう。
従来の方法 (オブジェクト指向)
処理性能: ...
ECS (データ指向)
処理性能: ...
事例2:金融取引システム 💹 ロックフリーキュー
複数スレッドがデータをやり取りする際、ロック(Mutex)は深刻な遅延の原因になります。ロックを使わない「ロックフリー」設計が、いかに高いスループットを実現するか比較します。
Mutexを使ったキュー
LOCK
処理数: 0
ロックフリーキュー
処理数: 0
事例3:3Dグラフィックス 🧊 空間分割木 (Octree)
広大な空間から特定の範囲内のオブジェクトを探す際、全検索は非効率です。空間を分割して管理するOctree(八分木)が、いかに検索回数を削減するか試してみましょう。(2Dで簡略化しています)
検索モード:
チェック回数: 0