[Moscow.pm] Сравнение языков

Михаил Монашёв postmaster на softsearch.ru
Пн Фев 9 21:35:38 PST 2015


Здравствуйте, Mons.

Этот код не обходит 10000000 элементов массива.

> int main (int argc,char **argv) {
> ═ ═ ═ ═ longint S = atoi(argv[1]);
> ═ ═ ═ ═ longint i,z;
> ═ ═ ═ ═ clock_t start = clock();
> ═ ═ ═ ═ longint sum = 0;
> ═ ═ ═ ═ for(z = 0; z < 1000; z++ ){
> ═ ═ ═ ═ ═ ═ ═ ═ sum = 0;
> ═ ═ ═ ═ ═ ═ ═ ═ for (i=0;i < S - S % 16; i+=16) {
> ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ sum += i ═ + i+1 + i+2═ + i+3═ + i+4═ + i+5═ + i+6═ + i+7
> ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ══+═ i+8 + i+9 + i+10 + i+11 + i+12 + i+13 + i+14 + i+15
> ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ;
> ═ ═ ═ ═ ═ ═ ═ ═ }
> ═ ═ ═ ═ ═ ═ ═ ═ for (i; i < S; i++ ) {
> ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ sum += i;
> ═ ═ ═ ═ ═ ═ ═ ═ }
> ═ ═ ═ ═ }
> ═ ═ ═ ═ clock_t end = clock();
> ═ ═ ═ ═ printf("%lu (%0.8f)\n",sum,((double)end-start)/1e6/z);
> }
>
> 1.5 ms
>
> gcc --std=c99 -O3 -march=native

попытался написать на C
unsigned int arr[10000000];
но это приводит к падению программы, видимо надо выделять память
динамически. Но не помню как?

-- 
С уважением,
 Михаил                          mailto:postmaster на softsearch.ru



Подробная информация о списке рассылки Moscow-pm