我正在寻找一些关于如何在我的C++代码中优化几个函数的新想法。我通过一个分析器运行代码,它显示了它们分别占用了20%和40%的时间。这些函数被多次调用,因为它们驻留在一个三重嵌套循环中(无法避免)。 void PairBlip::blip3_inner(int &i, int &j, int &k, int &e,double g[][2][3],
double gp[][2][3] ,double &blip_ijk
我正在编写一个类似MD的模拟程序,我在使代码运行得更快方面遇到了一些困难。我使用Call砂子和kcache差制对代码进行了剖析,我似乎用了大约30%的时间来计算距离,43%用于设置链接单元列表和计算我的力,20%用于malloc和free (我假设在创建新的向量时调用了这些代码)。在我的模拟中,我使用了两个类:“粒子”,包含两个STL矢量(位置和速度);和“系统”,它包含粒子向量和我用来模拟的函数。几乎所有CPU时间都在使用的两个函数如下:
bo