如何优化代码中的参数?

How do I optimize parameters in my code?

我有一些用 c++ 编写的代码,可以模拟 CPU 的预取器。在代码中我有一些看起来像这样的定义

#define x 5
...
for(int i = 0; i < x; i++)
...

在模拟结束时,模拟器输出平均访问时间,这是衡量预取器性能的指标。预取器的性能取决于 x 和其他一些类似的定义。

我想要一个改变 x 的程序,重新编译新代码,运行它,查看值,并根据模拟访问时间的变化重复该过程。

有谁知道不用手动更改值的简单方法吗?

编辑:我想我需要澄清一下,我不想编写一个学习算法,因为我从来没有做过,而且可能做的不如其他人好。

我猜你当前的程序看起来像这样

 int main() {
 #define x 5
 <do the simulation>
 cout << "x=" << x << " time=" << aat << endl;

相反,您可以创建一个模拟函数,它将 x 作为显式参数并且 returns 平均访问时间 ...

double simulate( int x ) {
    <do simulation>
 }

然后从 main

调用它
 int main() {
   x= initial x value
   While ( necessary ) {
     Double aat = simulate(x)
     Cout << "x=" << x << " time=" << aat << endl;
     x = <updated x according to some strategy>

这样你的机器学习 x 发生在 main 中。

但是...如果您正在编写一个程序来模拟 CPU 预取,我不禁认为您已经非常了解这一切了。我真的不明白你为什么首先使用编译器来更改模拟参数。