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

Mons Anderson v.perepelitsa на corp.mail.ru
Пн Фев 9 18:22:20 PST 2015


int main (int argc,char **argv) {
        long int S = atoi(argv[1]);
        long int i,z;
        clock_t start = clock();
        long int 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


-- 
Mons Anderson
<mons на cpan.org>



> On 9 февр. 2015 г., at 16:11, Михаил Монашёв <postmaster на softsearch.ru> wrote:
> 
> Здравствуйте, Mons.
> 
>> Народ, я не осилил дочитать это всё до конца.
>> А давайте-ка соберёмся и померяемся.
>> Не в плане теории, а в плане конкретных чисел
>> сравним разные языки, подходы и т.п.
> 
> А  собираться  обязательно?  Можно ведь и удалённо. Я на Go пишу всего
> месяц  и  мне было бы сложно придти и что-то нормально на нём написать
> за малое время. Но сравнить языки было бы интересно.
> 
> Предложу  простую  задачку,  которая  покажет,  насколько  хорошо язык
> работает  с  памятью:  сложить  все  значения  массива,  состоящего из
> 10000000  целых чисел. Код там простой: создаём массив, заполняем его,
> замеряем  время,  потом  в  цикле  складываем  элементы массива, снова
> замеряем время и выдаём результат. Вот мой вариант на Go:
> https://play.golang.org/p/iHGG3nV10L
> 
> Тонкости:  в песочнице код съедает много процессора и время там всегда
> одно  и  то  же, поэтому его надо сохранить в файл, например main.go и
> потом запустить вот так: go run main.go
> Скомпилировать  в исполняемый файл можно вот так: go build main.go
> А вот так выйдет более быстрая версия: go build -gcflags="-B" main.go
> Скачать Go можно вот тут: http://golang.org/
> 
> -- 
> С уважением,
> Михаил                          mailto:postmaster на softsearch.ru
> 
> -- 
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

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


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