Блог им. AUR1S

Самый шустрый язык программирования

    • 19 ноября 2015, 03:45
    • |
    • aura
  • Еще
Наиболее производительный язык программирования в рамках предложенных тестов. Но конечно, лучшее решение будет показывать не менее впечатляющие результаты и в большинстве прикладных проектов. 

Победила реализация Фортрана от Intel. Приблизиться к ней не смог вообще никто, даже GNU C и GNU C++ (и что еще более удивительно, чистый Си немножко проиграл «плюсам»). 
На четвертом месте язык Applied Type System, про который я к стыду своему слышу в первый раз. Представляет он систему автоматического доказательства теорем, расширенную средствами прикладного программирования. Почему так шустр, даже не знаю, но активно применяется для системного программирования. 

Пятое место давно шлифуемой Ada немудрено, а вот 6-7-е места Java — отличный аргумент против унылого мнения «java тормозит». 

Даже Pascal и C# Mono сильно от Java отстают, в полтора-два раза! В отношении Паскаля это совсем странно. Причина, видимо, в активно развивающихся промышленных технологиях оптимизации кода, ориентированных на поддержку в первую очередь виртуальных машин. 

Довольно быстро работают функциональные Lisp и F#, относительно несильно отстает и JavaScript. А вот классические скрипт-языки Lua, Ruby, Python и PHP тормозят уже в 30-50 раз. 

Резюме. 
Если пишем под линуху нагрузочную математическую прогу — однозначно Фортран. 
Если обычная логика — Си/С++. 
Специализированные и встраиваемые системы — ADA. 
Низкоуровневый системный код — ATS. 
Корпоративные системы — Java. 
Что-то легковесное-скриптовое — JavaScript. 
(Ассе́мблера почемута нет в списках — №1 по производительности)
Материал с сайта: http://www.pcweek.ru/idea/blog/idea/2329.php
    ★9
    29 комментариев
    Мои «тяжелые» алгоритмы (арифметика) при переходе с LUA (QUIK, режим интерпретации) на С++ (DLL) ускорились в 30 раз. Ассемблер на моих формулах уже не помог бы. Выжимать уже нечего.
    Кроче, С/С++ по скорости хватит везде и за глаза.  А Python Секрета — вообще тормоз :)
    avatar
    vito2000, он же говорит что на дельфи программирует. врёт штоле?
    avatar
    Ассемблера нет в списках, потому что это по сути тесты компиляторов на этапе перевода ЯВУ в ассемблер =). То есть тест отвечает на вопрос: насколько хорошие конструкции кода на ассемблере может строить компилятор из своего ЯВУ.

    Паскаль/дельфи/сбилдер проигрывает закономерно. Кто видел в дебагире или дизассемблере код из борландовского компилятора (а он у них один на все языки по сути), тот знает какой это тихий ужас с точки зрения оптимизации.

    Ява обходит, потому что мой друг приложил руку =))). Он лично писал всю оптимизацию под 64-битные AMD и Intel, а до этого работал над x86 для компилятора Оракал (его код реюзали по полной).

    В целом это всё очень бредовые тесты… И вообще, причём тут трейдинг? =)
    Fry (Антон), фигасе, друг какой молодец.
    А нельзя ли у него компилятором разжиться?
    avatar
    Йоганн, корпоративный продукт. Я его спрашивал, мол что да как, в чём изюм. Он сначала отмалчивался, говорил, типа, да кому он нужен, наш компилятор, так — для внутреннего пользования, а потом я догадался (ну связать-то не трудно Оракл > Ява) и он раскололся и объяснил суть своей работы.

    Живёт в Питере, работает аутсорсом. Биржу презирает. Гнилое это дело, говорит =)
    Кодом не делится, но зато подарил на ДР офигенную книгу — Алгоритмы: построение и анализ. Фундаментальная вещь! Правда, очень тяжёлая, в смысле больше 3кг =(
    Fry (Антон), правильно делает.
    Делиться кодом — приближать глобальный Армагеддон.
    Ничего хорошего нет в закручивании спирали развития.
    Наоборот, надо ее распрямлять на бОльший радиус)))

    А чем нынче заняты в трейдинге? Какие идеи?
    avatar
    Йоганн, сейчас каждый день пишу бота. Он уже работает (на фьючь сбера на 2 контракта для отладки поставил), но ещё сырой.
    Продолжаю свои эксперименты на виксе (VX CFE).
    Вот думаю, взять лонг сипы (санта-ралли), но на балансе уже есть поза на виксе, а маржи свободной нет.
    Fry (Антон), а бот на какой стратегии?
    avatar
    Йоганн, трендследун-интрадейщик. Наколбасил +8% за 8 дней испытаний — тренд сбера радует =), жаль, что так не всегда будет
    Fry (Антон), а тренд указывается вручную или сам определяет?
    В позу входит при достижении области поддержки-сопротивления?
    А стоп определяет по ширине диапазона «шума» в районе уровня?
    avatar
    Йоганн, для тренда один мувинг. Стоп в параметрах назначаю (точка отсчёта от экстремума). В позу входит по сигнальному индюку. Всё очень просто… если опустить некоторые моменты =)
    Fry (Антон), 1% в день — хорошо.
    А на флете как себя ведет? Распознает его7
    avatar
    Йоганн, всё как у всех — сам по себе флет безобиден.
    Но на переходе между состояниями (аптренд<>даунтренд<>флет), понятное дело, будут потери. Ничего принципиально нового.
    Андрей Аурис, для HFT-бота, который эксплуатирует фактор скорости критическими местами является:
    1) маршрут (нужно убрать всё лишнее)
    2) работа со строковыми типами данных
    3) проверки ошибок (придётся пожертвовать гибкостью и устойчивостью кода в пользу скорости)

    Чтобы решать кодерские задачи для HFT, лучше всего, на мой взгляд, подходит интеловский компиллер C++.

    В HFT обычно на уровне кода нет никаких таких циклических математических рассчётов, главные задержки которые реально убрать программисту — это избавиться всяких конекторов-адаптеров-трансляторов-проверок.
    Например, важнее всего избавиться от библиотеки-посредника, которая безумно тупо проверяет строковые значения и очень-очень дебильно парсит их в float'ы и int'ы, когда на самом деле надо получить родные для x64 даблы и лонги.
    А затем максимально быстро обратно сгенерировать строку из даблов без всяких проверок, но с кучей оговорок (с фиксированной точностью и не полным диапазоном допускаемых входных значений).
    С#, я так понимаю, использовался в безопасном виде, мало кто пишет результаты при использование # в небезопасном виде.
    avatar
    вы бы еще учли скорость написания и скорость поддержки всего этого хлама. вне зависимости от уровня разраба, которого под всякую кривую экзотику еще найти надо.
    Для каждой задачи и сроков — свое средство разработки. Давно уже разрешенный вопрос это
    Какая разница на чем писать… за деньги, хоть на папирусе)
    Просто через месяц, в ваш супер быстрый код, вставят костыль, и будет пофиг что на чем вы писали, а будет тормозить, памяти добавят)
    avatar
    Давно заметил в ваших постах, гоняетесь за скоростью. Интересно, что за стратегию хотите алгоритмизировать? Насколько понял из давнего — стаканы анализировать. Просто не сталкивался с такими сверх задачами, где зачастую нужно гоняться за скоростью.
    avatar
    Андрей Аурис, а теоретически подкованы? Если да, с чего бы можно начать изучать?
    avatar
    Андрей Аурис, не правильно поняли. Я программировать способен. Я больше про нейронные сети. Чтобы их делать, нужна хорошая теоретическая база по ним. Не знаю пока как подступиться и с чего начать.
    avatar

    На четвертом месте язык Applied Type System,...., но активно применяется для системного программирования.

    Я тоже не слышал. Ты точно понимаешь что подразумевается под «системным программированием»??

    avatar
    Если говорить о «быстроте» языка — это скорость-удобство написания и структурирования кода. А производительность — это качество компилятора. Статью писали дебилы..

    А для ИИ я создал специальный класс «Перцептрон» на плюсах с оптимизированными на асме методами — все летает.

    С++ — форева !

    avatar

    теги блога aura

    ....все тэги



    UPDONW
    Новый дизайн