C盘中的用户是什么文件:c中的 stride是什么

关于C盘中的用户是什么文件的问题,在what is stride中经常遇到, 在学习 Python 之前,我是 C 的新手,这就是为什么我不知道什么是 stride 以及如何在代码中使用它们。

在学习 Python 之前,我是 C 的新手,这就是为什么我不知道什么是 stride 以及如何在代码中使用它们。

这个问题找到了答案。谢谢 @ Eric Postchil

6

一般来说,步幅是通过某物的距离。

addition例程中,我们有以下循环:

for (long i = 0; i < COLS; i++)
        for (long j = 0; j < ROWS; j++) {
            sum += table[j][i];
        }

在第一个迭代中j等于x的最内层循环的连续迭代中,一个迭代访问table[x][i],下一个访问table[x+1][i]。这两个访问之间的距离是一个table[j]的大小,即COLS(2000)short的元素可能是 4000 字节

这通常对典型处理器上的缓存内存不利,因为缓存内存主要是为彼此接近的内存访问(小步幅)而设计的。这是程序性能缓慢的原因。

由于循环中的操作sum += table[j][i];与所有ij的执行顺序无关,因此我们可以通过交换两个for语句来轻松解决此问题:

    for (long j = 0; j < ROWS; j++)
        for (long i = 0; i < COLS; i++)
            sum += table[j][i];

然后,最内层循环的连续迭代将访问table[j][x]table[j][x+1],它们的步幅为一个short,可能是两个字节。

在我的系统上,这个程序的运行速度大约是这个改变的 20 倍。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(31)
Bonus track:传销奖金 Cronjob
上一篇
Col3a1基因:CSS网格-从1行 3列过渡到3行 1列(grid 1/3)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(82条)