ハイパフォーマンスなコア部分の開発手法 〜プロファイル駆動開発のススメ〜
C++に限らずコア部分を開発したことがある方や、これから行いたい方。
テスト駆動開発の経験があるとなお良い。
プロファイル駆動で効率よくコア部分を開発できるということ。
ハイパフォーマンスなコア部分の開発手法 〜プロファイル駆動開発のススメ〜
C++に限らずコア部分を開発したことがある方や、これから行いたい方。
テスト駆動開発の経験があるとなお良い。
プロファイル駆動で効率よくコア部分を開発できるということ。
プロファイル駆動開発(Profile-Driven Development: PDD)とは、最初にプロファイル用のテストコードを書き、テストコードが動くように実装した後、プロファイル結果が良くなるまで最適化を行う開発手法で、一般的なワードではありませんが、この手法で開発したところ良い結果を得ることができたので紹介させていただきます。
このPDDには、実装中はラピッドイテレーションによる高い生産性があり、実装後は継続的プロファイルによりパフォーマンスが保守される特徴があります。この高い生産性と保守性が、コア部分での開発では非常に重要です。
今回は弊社で実践しているPDDの中から、クラスやメソッドなどのユニットレベルでプロファイルする手法を、実践した数学系ライブラリの事例と一緒に紹介します。