S3C2440A strange perfomance issue
Владимир Фещенко
vladimir-its at yandex.ru
Thu May 12 16:20:25 UTC 2011
<div>12.05.2011, 19:01, rozhuk.im at gmail.com:</div><div>> May be unsigned int *p = (unsigned int *)malloc(area_size * sizeof(unsigned</div><div>> int));</div><div>> must be align 4 byte?</div><div>></div><div>> --</div><div>> Rozhuk Ivan</div><div> </div><div>Yes of course, it's must be and it's is. Little modification of source code:</div><div> </div><div><span style="font-family: courier new,courier;">#include <stdlib.h><br />#include <stdio.h><br /><br />int main(int argc, char *argv[])<br />{<br /> unsigned int area_size = 1024*1024;<br /> unsigned int *p = (unsigned int *)malloc(area_size * sizeof(unsigned int));</span></div><div><span style="font-family: courier new,courier;"> if(p){</span></div><div><span style="font-family: courier new,courier;"> <strong>printf("p = 0x%08x\n",(uint32_t)p);</strong><br /> unsigned int cnt = 32;<br /> while(cnt > 0){<br /> unsigned int i = 0;<br /> while(i < area_size){<br /> p[i] = i;<br /> i++;<br /> }<br /> cnt--;<br /> }<br /> free(p);<br /> }else{<br /> printf("memory allocation failed.\n");<br /> }<br /> return(0);<br />}</span></div><div> </div><div>and result of execution is:</div><div> </div><div><span style="font-family: courier new,courier;">%/usr/bin/time -l ./test</span></div><div><span style="font-family: courier new,courier;">p = 0x20200000<br /> 120.36 real 119.47 user 0.23 sys<br /> 4824 maximum resident set size<br /> 4 average shared memory size<br /> 963 average unshared data size<br /> 128 average unshared stack size<br /> 1101 page reclaims<br /> 0 page faults<br /> 0 swaps<br /> 0 block input operations<br /> 0 block output operations<br /> 1 messages sent<br /> 0 messages received<br /> 0 signals received<br /> 2 voluntary context switches<br /> 12177 involuntary context switches</span></div><div> </div><div>p is aligned ...</div>
More information about the freebsd-arm
mailing list