Happy My Life

日常とか技術とか

OOPの落とし穴

SCEE(Sony Computer Entertainment Europe)で公開されているPDFを紹介。

Pitfalls of Object Oriented Programmingがそれ。内容がPlayStation3開発についてCPUの搭載されたL2キャッシュを活かしてCPUの性能を最大限に引き出すテクニックが紹介されている。どのようにクラス設計をし、どのようなデータ構造にすべきか、など。

職業ゲームプログラマだったら、これを理解し活用するのは必須でないかと。無論、それ以外にも、CPUパフォーマンスを重視したプログラミングをしている方には十分参考になる資料である。

公開資料の概要

最初の部分だけ抜粋して

  • OOPって何?
  • C++の歴史
  • 1979年から何が変化した? → CPUは早くなったがMemoryへのアクセス速度はそうでも無い
  • 2009年現在のRAMのレイテンシーは、400+サイクル → 400サイクルあったら何できる?
  • ムダなストールが発生
  • その時、L2 キャッシュにどう働いているのか?(イラストつき)

といった話から始まって、さまざまな改良を加えてパフォーマンスを上げる過程が書かれている。

L2キャッシュ、L2キャッシュ、L2キャッシュ

1にも2にも、L2キャッシュが登場。キャッシュミスは悪だと言わんばかりの内容となっている。

L2キャッシュを活かすクラス設計(データ構造)で最終的にはパフォーマンスを最大6倍アップさせた。

CPUの動作の理解を深める事もできる資料なので一読しておくとよいかも。

iPhoneゲーム開発ワークショップ
iPhoneゲーム開発ワークショップ長尾 高弘


Amazonで詳しく見る
by G-Tools