我正在编写一个物理模拟,我现在觉得需要优化它。我正在考虑改进一点:我的一个班级的一种方法(在几种情况下我称之为十亿次)每次都定义一个概率分布。这是代码:
void myClass::myMethod(){ //called billions of times in several cases
uniform_real_distribution<> probd(0,1);
uniform_int_distribution<> probh(1,h-2);
uniform_int_distribution<> probv(1,v-2);
//rest of the code
}
我可以将分布作为类的成员传递,这样我就不必每次都定义它们了吗?并且只是在构造函数中初始化它们并在 h 和 v 更改时重新定义它们?能不能算是一个很好的优化进度?最后一个问题,当使用标志 -O3 或 -O2 编译时,它是否已经被编译器(在我的情况下是 g++)更正了?
先感谢您!
更新:我对其进行了编码并对其进行了计时:程序实际上变慢了一点(百分之几),所以我回到了我的开始:在每个循环中创建概率分布