如何优化代码中的参数?
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 预取,我不禁认为您已经非常了解这一切了。我真的不明白你为什么首先使用编译器来更改模拟参数。
我有一些用 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 预取,我不禁认为您已经非常了解这一切了。我真的不明白你为什么首先使用编译器来更改模拟参数。