img [j] [i] = 2 * j i
然后,你创建一个矩阵res [] [],这里的每个字段都是img矩阵中它周围的9个字段的平均值.为简单起见,边框保留为0.
for(i=1;i
这就是该计划的全部内容.为了完整起见,以下是之前的内容.没有代码.如您所见,它只是初始化.
#define SIZE 8192
float img[SIZE][SIZE]; // input image
float res[SIZE][SIZE]; //result of mean filter
int i,j,k,l;
for(i=0;i
基本上,当SIZE是2048的倍数时,该程序很慢,例如,执行时间:
SIZE = 8191: 3.44 secs
SIZE = 8192: 7.20 secs
SIZE = 8193: 3.18 secs
编译器是GCC.
据我所知,这是因为内存管理,但我对这个主题并不太了解,这就是我在这里问的原因.
另外如何解决这个问题会很好,但如果有人能解释这些执行时间,我已经足够开心了.
我已经知道malloc / free了,但问题不在于使用的内存量,它只是执行时间,所以我不知道这会有多大帮助.
本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/c-weishenmezaixunhuan8192geyuansushiwodechengxuhui.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9 月 19, 2019 at 07:00 上午