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

Naim Sh shafiev на gmail.com
Вт Фев 10 04:37:36 PST 2015


Коллеги , а что вы не юзаете тот же интеловский компилятор, он то именно 
на такой синтетики должен давать максимальные результаты.

On 02/10/2015 04:33 PM, Andrey Kovbovich wrote:
>
> Потестил на более менее современной тачке... вариант Монса у меня 
> сегфолтится почему-то, прогнал слегка модифицированный из пред комментов
>
> #include <stdio.h>
> #include <time.h>
> #include <stdlib.h>
> #include <stdint.h>
> #include <inttypes.h>
>
> int main()
> {
>         uint32_t *arr;
>         arr  = (uint32_t *) malloc(10000000 * sizeof(uint32_t));
>
>         int i,z;
>         for( i=0; i<10000000; i++) {
>                 arr[i] = i;
>         }
>
>         clock_t start = clock();
>         uint64_t sum;
>
>         for(z = 0; z < 100; z++ ){
>             sum = 0;
>             for( i=0; i<10000000; i++) {
>                             sum+=arr[i];
>             }
>         }
>
>         clock_t end = clock();
>         printf("Time:(%0.8f)ms . Sum: %" PRIu64, 
> ((double)end-start)*1000/CLOCKS_PER_SEC/z, sum);
>
>         return 0;
> }
>
> $ cat /proc/cpuinfo
> model name: Intel(R) Core(TM) i7 CPU       X 980  @ 3.33GHz
>
> $ gcc --std=c99 -O3 -march=native 3.c -o 3.native
> $ ./3.native
> Time:(5.20000000)ms . Sum: 49999995000000$
>
>
> еще раз на скриптовом J
>
> $ ./jconsole.sh
>    x =: i.10000000
>    6!:2 's =: +/x'
> 0.009537
>    s
> 49999995000000
>
> 9+ ms
>
> 10 февраля 2015 г., 14:48 пользователь Анатолий Гришаев 
> <0body0 на rambler.ru <mailto:0body0 на rambler.ru>> написал:
>
>     10.02.2015 14:36, Михаил Монашёв пишет:
>
>         Здравствуйте, Анатолий.
>
>             Кстати лучше  считать  с  нуля  тогда  процесор  может
>             использовать
>             prefetch
>
>         Ещё  в  С  можно  как-то задать выравнивание массива. Не знаю,
>         правда,
>         поможет ли это, но мне кажется, что всё упирается в скорость
>         чтения из
>         памяти. Ещё возможно попытаться задать выравнивание для тела
>         цикла.
>
>     В POSIX написано, что результат вызова malloc всегда выровнен, а
>     всякие массивы объявленные статично компилятор выравнивает.
>     Можно поэтому не волноваться :)
>     Конечно, если ты сам адрес массива не посчитаешь/укажешь типа
>     0x...7f.
>
>
>     -- 
>     Moscow.pm mailing list
>     moscow-pm на pm.org <mailto:moscow-pm на pm.org> | http://moscow.pm.org
>
>
>
>

-- 
  

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150210/fa2da824/attachment-0001.html>


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