У кого короче ?

Logan22

Гений мысли
Проверенный
Знаток Lineage2
Орден Почета
Мастер реакций
Любитель реакций
Знаток письма
Медаль Благодарности
Старожил I степени
Медаль за активность на Форуме
За заслуги перед форумом
Преподаватель
За веру и верность форуму
Сообщения
1 514
Розыгрыши
0
Решения
2
Репутация
1 674
Реакции
1 308
Баллы
1 808
Интересное название темы , не правда ли?
Увы, я должен обнадежить Ваши пошлые мысли.
Все мы мерились своей скоростью интернета... время прошло , давайте измерять другое.
Давайте немного измерим скорости языков программирования, и узнаем у кого короче (быстрее, шустрее) выполняется самый обычный цикл FOR, который есть в каждом ЯП.
Цикл в 10.000.000.000 (десять миллиардов) и засекаем время его выполнения цикла в сек.
Записывайте данные за сколько время выполнился цикл, так-же скидывайте само приложение сюда архивом в пост ( ).
Усложним жизнь и добавим ещё одно требование, нужно догадаться на каком языке написана программа.
Если вы сделали небольшую уведомительные данные в программе скидывайте под сполер.

Я начну
Цикл выполнен за 11 сек.
Стартуем...
10000000001
Запуск цикла программы 1452861423
Завершение цикла программы 1452861434
Выполнено циклов 10000000001
Сек. выполнения 11
Программа [ ] [ ]
Исходный код

Есть варианты какой это ЯП ?
 
Последнее редактирование модератором:

Пых 7 ветки, он старался. Он кстати быстрее 5версии в 3 раза)
upload_2016-1-15_15-10-28.png
Исход
PHP:
<?php
ini_set('max_execution_time', 0);
ini_set('memory_limit', '4G');
echo PHP_VERSION."\n<br>";
$start = time();
for ($i = 1; $i <= 10000000000; $i++) {
}
$end = time();
$runtime = $end - $start;
echo 'Выполнено 10.000.000.000 циклов за '. $runtime .' секунд.<br>Да Я PHP и Я это сделал...пока хозяин кушал)';
 
Какой-нибудь раст, либо чето похожее. Там половина языка залинкована внутри.
Okay :C

4411 ms, 10000000000 loops

Код:
// ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <tchar.h>
#include <chrono>

using namespace std;
using namespace chrono;

milliseconds getCurrentMillis();

int _tmain(int argc, _TCHAR* argv[])
{
    auto start = getCurrentMillis();
    long long i = 0;
    for(; i < 10000000000;) {
        i++;
    }

    auto end = getCurrentMillis();
    printf("%I64d ms, %I64d loops", end.count() - start.count(), i);

    getchar();
    return 0;
}

milliseconds getCurrentMillis()
{
    return duration_cast<milliseconds>(::system_clock::now().time_since_epoch());
}

 

Вложения

  • app.zip
    3,4 КБ · Просмотры: 50
Последнее редактирование:
30 сек 10.000.000.000 честно сказать ожидал большего ))) то есть меньшего от данного ЯП)


Исходник
 

Вложения

  • 10billion.7z
    10,9 КБ · Просмотры: 28
Последнее редактирование модератором:
Вы же понимаете, что сравнивать время выполнения РАЗНЫХ бенчмарков (некоторые компиляторы вырезают пустые циклы, некоторые - нет (привет пыхе)) на РАЗНЫХ машинах (это вообще фейспалм) это совершенно некорректно ? Если уж и хотите что-то подобное сделать, то нужно предоставить четкие условия, типа определенного формата вывода, использования дефолтных для языка методов написания бенчмарков, выполнение всех тестов на одной машине и тд.
 
Вы же понимаете, что сравнивать время выполнения РАЗНЫХ бенчмарков (некоторые компиляторы вырезают пустые циклы, некоторые - нет (привет пыхе)) на РАЗНЫХ машинах (это вообще фейспалм) это совершенно некорректно ? Если уж и хотите что-то подобное сделать, то нужно предоставить четкие условия, типа определенного формата вывода, использования дефолтных для языка методов написания бенчмарков, выполнение всех тестов на одной машине и тд.
Разве кто-то говорил о серьезности? Just for fun.
 
Вы же понимаете, что сравнивать время выполнения РАЗНЫХ бенчмарков (некоторые компиляторы вырезают пустые циклы, некоторые - нет (привет пыхе)) на РАЗНЫХ машинах (это вообще фейспалм) это совершенно некорректно ? Если уж и хотите что-то подобное сделать, то нужно предоставить четкие условия, типа определенного формата вывода, использования дефолтных для языка методов написания бенчмарков, выполнение всех тестов на одной машине и тд.
Я даже комментировать не буду.
 
Как раз думал, что раст или го, но написал только про раст:)
Хотел вставить в прошлый пост, но форум тупит, как... Неописуемо.
я видел твое сообщение, ты ещё предположил что это какой-то интерпретатор, и тут мне взбрело в голову проверить на php и python )))
 
Есть ещё идея на будущее заюзать CUDA. Интересны его результаты будут.
 
Java.
Код:
public class TestFor
{
   static final long COUNT = 0x2540BE400L;
   public static void main(String[] args)
   {
      final long time = System.currentTimeMillis();
      for(long i = 0; i < COUNT; i++){}
      final long finishtime = System.currentTimeMillis() - time;
      System.out.println(finishtime);
   }
}
6,643 sec
Java 8 LongStream
Код:
public class TestFor
{
    static final long COUNT = 0x2540BE400L;
    public static void main(String[] args)
    {
        final long time = System.currentTimeMillis();
        LongStream.rangeClosed(0, COUNT).forEach(i->{});
        final long finishtime = System.currentTimeMillis() - time;
        System.out.println(finishtime);
    }
}
6,444 sec.
P.S. На говноноуте.
 
Последнее редактирование:
Java.
Код:
public class TestFor
{
   static final long COUNT = 0x2540BE400L;
   public static void main(String[] args)
   {
      final long time = System.currentTimeMillis();
      for(long i = 0; i < COUNT; i++){}
      final long finishtime = System.currentTimeMillis() - time;
      System.out.println(finishtime);
   }
}
6,643 sec
Java 8 LongStream
Код:
public class TestFor
{
    static final long COUNT = 0x2540BE400L;
    public static void main(String[] args)
    {
        final long time = System.currentTimeMillis();
        LongStream.rangeClosed(0, COUNT).forEach(i->{});
        final long finishtime = System.currentTimeMillis() - time;
        System.out.println(finishtime);
    }
}
6,444 sec.
P.S. На говноноуте.
на моем это выдало 3,175
 
#include <iostream>
#include <ctime>

int main()
{

unsigned long long i = 0;
unsigned int startTime = clock();
for (;i < 10000000000;i++)
{}
unsigned int endTime = clock();
unsigned int runTime = endTime - startTime;
std::cout << "Iterations: " << i << std::endl <<
"Run time: " << (runTime / CLOCKS_PER_SEC) << std::endl;
std::cin.get();
return 0;
}

В дебаг-режиме 29 секунд, в релиз-режиме - сразу (0 секунд).
На убунте запускал, идешка - QTCreator.
 
Mizuwokiru поставь внутрь цикла чето типа:
Код:
if(i == 456454) {
  _asm {
    nop
  }
}

Или можешь переключить режим оптимизации на минимальный размер, либо О0.
 
Назад
Сверху Снизу