Boostを使用して行列代数を実行しています。この最適化が何かをするかどうかを理解しようとしています。オリジナル:
matrix<double> DoSomething(matrix<double> a, matrix<double> b)
{
return a + b; //for example
}
最適化:
matrix<double>* DoSomething(matrix<double>* a, matrix<double>* b)
{
return *a + *b; //for example
}
基本的に、パラメーターと戻り型としてポインターを使用すると、大きなオブジェクトをコピーできないと思いました。ソースコードを読んだ後、Boostublasが基本的にこれを処理するのだろうかと思います。Boostのコードで常に参照を扱っているようです。