作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
我是优化方面的新手。我一直在阅读一些关于如何优化 C++ 代码的引用资料,但我很难将其应用于实际代码。因此,我只想收集一些真实世界的优化技术,了解如何从下面的循环中尽可能多地从 CPU/内存中榨取汁液
double sum = 0, *array;
array = (double*) malloc(T * sizeof(double));
for(int t = 0; t < T; ++t){
sum += fun(a,b,c,d,e,f,sum);
*(array+t) = sum;
}
其中 a,b,c,d,e,f
是 double
而 T
是 int
。欢迎使用任何内容,包括但不限于内存对齐、并行性、openmp/MPI 和 SSE 指令。编译器是标准的 gcc、microsoft 或常用的编译器。如果解决方案是特定于编译器的,请将特定的编译器和任何选项标志与您的解决方案相关联。
谢谢!
PS:忘记提及属性 fun
。请假设它是一个简单的函数,内部没有循环,并且仅由基本的算术运算组成。简单地把它想象成一个内联函数。
EDIT2:由于 fun
的细节很重要,请忘记参数 c、d、e、f 并假设 fun
定义为
inline double fun(a,b, sum){
return sum + a* ( b - sum);
}
我目前正在研究数据库,我看到 degree 和 cardinality 用作相同的术语,或在某些其他学位定义为否。关系中涉及的实体的数量,并进一步分类为一元、二元和三元。 某些放置度数定义为关系类型的
我是一名优秀的程序员,十分优秀!