我有一些C ++代码主要在堆栈上运行,通过许多小的临时对象。
现在我想知道是否应该存储或重新计算某些使用次数较低的值以获得最佳性能。
作为一些非常简单的例子,可以定义
class Point
{
float x,y;
Point(float _x, float _y)
{
x=_x; y=_y;
}
float get_radius()
{
return sqrt(x*x+y*y);
}
}
或
class Point
{
float x,y;
float radius;
Point(float _x, float _y)
{
x=_x; y=_y;
radius=sqrt(x*x+y*y);
}
}
如果多次使用radius
,第二个解决方案将胜过第一个解决方案。
是否有可靠的方法,例如使用valgrind
,特别是valgrind --tool=cachegrind
工具,找出我的代码应存储哪些值,以及根据需要计算哪些值?