Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Erlang, CPP и прочие — тормоза!

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Новая версия самого мощного бенчмарка среди платформ, вебсерверов, фреймворков и т.д.: www.techempower.com/benchmarks

Первых 7 мест за решениями на jvm. Как это обьяснить? Где хваленая производительность эрланга и цпп?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

эх, закончилась эпоха крестовых походов, приходится из-за рантаймов сраться...

Так эрланга то как раз и нет в списке, во всяком случае по фильтру язык=эрланг выборка пустая.

Он есть в раунд 6, в 7-ку не включили потому что там в ерланге глобально поломалось, и их бенчмарки перестали компилится

Эта информация не соотвествует действительности. Эрланг версия бенчмарка компилируется но не показывает ничего кроме пропускной способности mysql драйвера и библиотеки jiffy, не принимая во внимание неверную технологию тестирования.

Эрланг версия бенчмарка компилируется но не показывает ничего кроме пропускной способности mysql драйвера и библиотеки jiffy,
Ты прав, оно компилитсо, но умирает сразу же показывая нулевую пропускную способность майскл драйвера и библиотеки джиффи. Отличный результат, воспетая в песнях стабильность ерланга в деле: github.com/...arks/issues/495

Конечно если неправильно тестировать то оно будет падать и ошибки будет постоянные выдавать. Там же обезьяны этим занимаются. Смысл же теста, что бы замерять производительность, а не показать неработоспособность.

Безусловно, глючная либа тут не причем, программисты во всем виноваты ))

У меня хватило времени, желания и знания отконфигурировать Haskell, OCaml, Go, Node, D, Http-kit что бы хорошо протестировать. Зачем комитить бред и показывать какие-то разноцветные строчки ума не приложу.

И в чем поинт? Чуваки протестировали в 10 раз больше фреймворков чем ты. Не вижу большой трагедии в том что они не захотели глубоко копаться в потрохах глючной экосистемы ерланга.

глючной экосистемы ерланга.
Больше ада, Больше фреймворков, кто смотрит на цифры? Больше цветов!

Ну а фигли, либа у них старая видите ли, аж 7 месяцев ей, и все уже лежит и не мумукает, стабильность ерланга на высоте ))

Тебе я вижу самому уже смешно.

Та у меня с самого начала ерланг и его апологеты ничего кроме улыбки не вызывали ))

Я удивлен, что слухи про Эрланг до тебя вообще дошли.

Чему тут удивляться, красноглазые толкатели опиума очень проактивны в интернетиках

Опиум это Java/C#,
Героин — это C++ и PHP.
Мы же толкаем чистейший LSD!

Это маркетинг, на практике ганджубас пересыпаный чаем, о чем и топик.

Agda/Coq — это DXM.
ML/OCaml/F# — это MDMA.
Кокаин — это APL/J/K/Q.
Марихуана — это LISP и Erlang.

Оставляю это тебе, у меня другие способы достижения просветления сознания.

Да да, я знаю, блокирующие драйвера к Ораклу :)

Я уже писал, если это кратчайший путь к достижению цели — почему бы и нет.

Так сказано же, тормоза :) Еще не успели закомитить версию в которой хоть что-то есть.

Хм, это вроде не первой вкладке, где JSON сериализация. Но не отменяет того что JVM обычно на неплохих позициях в этом рейтинге.

Там если пощелкать есть более интересный показатель — overhead фреймворка. Например когда отталкиваются от базового «servlet» и меряют сеты «spring», «scalatra» и т.д.

Еще следует отметить, то большинство первых мест для Java бенчмарков было получено на Resin. Интересно, его сетевой стек на С включали?

Еще нету одного очень важного в 2013 то году сета — Java EE 7, Wildfly. Думаю много Java программистов бы нашли много чего удивительного и не ожиданного для себя. Мне было бы интерестно vs Resin

В чем смысл таких бенчмарков? Письками померятся?

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

Если писать на Крестах как на Джаве — естесно Джава будет быстрее, потому как JIT адаптирет код под текузий процессор. Кроме того время на саму JIT компиляцию в таких етстах обычно не учитывают.

Если писать на Крестах как на Джаве — естесно Джава будет быстрее, потому как JIT адаптирет код под текузий процессор.
Вот, код написан в лоб на каждом из языков и выглядит одинаковым:
www.ffconsultancy.com/.../languages.html

Пока это только фантазии. Даже если к jvm прикрутят llvm на хорошем уровне, а не на том, что сейчас, то проигрышь у jvm всё равно будет из-за различных мелких операций.

Ничего не понял из того что вы написали. Зачем LLVM в данном случае?

Чтобы было быстро, ибо то, что есть сейчас — это тихий ужас, borland turbo c 1.0 генерировал код лучше.

Дизассемблировал код.

Отлично, и как, LLVM лучше генерировал байткоды JVM?

Да, по крайней на нескольких участках того кода, который я рассматривал.

Напишите вот человеку, twitter.com/shipilev, а то он оптимизирует JVM и компилятор и наверное и не знает что LLVM может все так классно улучшить

Я не знаю, знает он об этом или нет, но проект LLVM c Java существует туеву хучу времени и всем, кому интересно уже попробовали.

А можно эти участки посмотреть где-нибудь?

Врядли. Но вы можете посмотреть вот сюда и имплементировать ГОСТ 34.311-95sourceforge.net/.../lib/gosthash.c на Java.

Если вы мне все ещё не верите, то покажите хотя бы этим ребятам что у них не так в реализации, что скорость проседает в 2-2.5 раза.www.bifit.ua/...olib/index.html

Я також колись таким страждав (правда, із SBCL, не з JVM): dmytrish.livejournal.com/26906.html

І що з того? Трохи пізніше до мене прийшло розуміння, що JIT’ований код далеко не завжди має бути по зав’язку оптимізований в усіх місцях, що дійсно краще попрофілювати і звернути увагу на вузькі місця, ніж перетворювати JIT у аналог gcc -O3.

І що з того?
А почему нет?
Трохи пізніше до мене прийшло розуміння, що JIT’ований код далеко не завжди має бути по зав’язку оптимізований в усіх місцях, що дійсно краще попрофілювати і звернути увагу на вузькі місця, ніж перетворювати JIT
Смотря что делать, если формочки, то да — не надо. Если финансовые расчёты, то почему не нужно нормальной оптимизации? Это ж не недоязык какой-то, в самом деле.
Да и gcc -O3 — совсем не идеал, но хотя бы до этого уровня надо поднятся.

Суть у тому, що згенерований машинний код, який тоді мені здався жахливим, швидше за все, і не потребував такої вже сильної оптимізації, поки ним справді хтось не почне інтенсивно користуватись. Так що правильніше, як це і робить JVM, спокійно інтерпретувати байткод, поки якісь шматки не почнуть займати забагато часу, а вже тоді оптимізувати ці, експериментально виявлені шматки, причому підозрюю, що їхня оптимізація може ще й розмазатись по часу (чим більше виконуються, тим довше їх оптимізовують).

А фінансові розрахунки тут поганий приклад, там точність потрібна, а в ніші наукових розрахунків Java ніколи особливо і не закріплювалась, на відміну від Фортранчика та Сі.

Суть у тому, що згенерований машинний код, який тоді мені здався жахливим, швидше за все, і не потребував такої вже сильної оптимізації
Единственное, что радует, так это то, что не я один считаю это неправильным.
А фінансові розрахунки тут поганий приклад, там точність потрібна
Какая точность? :)

Це не неправильно, це може бути (хоч я і не знаю точно) здоровий компроміс між процесорними ресурсами, витраченими на оптимізацію (а це, що не кажи, витратне заняття) та збереженими на оптимізації ресурсами. Який сенс викидати на оптимізацію більше, ніж вона збереже?

Про оптимизацию ниже написал, вы не на том уровне оптимизируете.

Для прикладу, моя невелика програма (~1800 loc) на чистому Сі (ніяких шаблонів і плюсизмів) компілюється на Core i3 дуууже довго (як на JIT):

$ time gcc -O2 secd.c -o secd
real 0m0.779s
user 0m0.708s
sys 0m0.016s

Завантажувати в рантайм менше 2 kloc коду 800 мс? Ні, довге задоволення. Екстраполюючи на який-небудь великий ентерпрайзний проект, повна компіляція займала б десятки хвилин, кому потрібен такий JIT? Краще вже тоді піти стопами C# і влаштувати Ahead-Of-Time компіляцію. Реально компілювати потрібно лише малий відсоток часто використовуваного коду, а компілювати дуже добре лише ще менший відсоток гарячих точок, ази профілювання же.

Краще вже тоді піти стопами C# і влаштувати Ahead-Of-Time компіляцію.
Так jvm с llvm это и делают.
Реально компілювати потрібно лише малий відсоток часто використовуваного коду, а компілювати дуже добре лише ще менший відсоток гарячих точок, ази профілювання же.
Странно вы это представляете, конечно. Посмотрите “байт-код” LLVM, оптимизация 80% была выполнена при генерации байт-кода, а 20% при машинном конвертировании. То же самое и с jit — он получает уже скомпилированный и оптимизированный байт код. Причём тут полная компиляция? Это не тот пример.

Ідея наперед компілювати JVM у LLVM і запускати LLVM-біткод не позбавлена смислу, але LLVM слабо дружить із збиранням сміття (хуки є, а далі все from scratch).

Edit: і все-таки не до кінця погоджусь, знати значення якихось конкретних змінних/умов в рантаймі може бути корисно для constant folding і елімінування мертвого коду (який не зовсім мертвий за інших значень), тут статична компіляція буде буксувати.

llvm используеься вместо javac и вместо jit. Самостоятельную роль оно не играет.

Интересно, кто купит результаты тестов?

Это вебстудия www.techempower.com/portfolio.html
Конёк типа outsource CTO :)
Биг-дата на Mongo :-) Joomla и MVC на JavaScript.
Что бы хоть кто-то у них что-то заказывал решили выстпутить с проектом Бенчмарк.
В портфолио нет ни одного хай лоад сайта: интранет порталы и хомяки.
Самый крутой тестимониал какой-то менеджер отдела из HP.

Зато в глазах рябит, чо.

Ну похвастайся уже своими тестимониалами

This [N2O] makes Websockets so easy. Thanks for this, it’s great.
Joe Armstrong, автор Erlang, Ericsson
Excited to see these guys pushing boundaries; that’s exactly what inspired Nitrogen in the first place. My hat is off to the synrc.com team for their work on N2O...
Rusty Klophaus, автор Nitrogen, Basho
N2O is one of the most interesting Cowboy based frameworks.
Loïc Hoguin, автор Cowboy, Nine Nines

Не-не, это люди которые посмотрели твой фреймворк мизинцем левой ноги. Где твои благодарные клиенты? Если ХП не катит, то давай отзывов на себя из гугла, или МС какого.

In this framework, most of all I liked the fact that most of the tasks solving in one code, in one language. And is not spread to the front-end & back-end.
Alex Radetsky, PearlPBX
Writing asynchronous web-applications has never been so easy for me. Now I really like to push data to client!
Max Treskin, Metachord
N2O is the easiest way how to write different webapps. It just works.
Alexander Karpich, RON-Telecom CJSC

Да уж, менеджер из ХП и сайт еХармони меркнет перед твоим грандиозным портфолио ))

А что менеджер из HP круче Радецкого или Трескина ты думаешь?

ХП знаю, радетского нет, твой очередной пафос традиционно мимо кассы

Тестировать нужно:
1. wrk
2. siege
3. httperf
4. ab
В таком порядке. Чем дальше чем более недоверия. Если что-либо протестировано только ab или httperf, доверия к такому бенчмарку нет никакого.

Тестировать нужно:
1. wrk
2. siege
3. httperf
4. ab
В таком порядке. Чем дальше чем более недоверия. Если что-либо протестировано только ab или httperf, доверия к такому бенчмарку нет никакого.
Лол, они использовали wrk, ты наверное теперь просто переполнен доверием

Нет, доверия они не вызывают, все равно, прости. Я DDoS-ами тестировал свои сайты, я знаю реальные цифры. Меня красивыми попугаями раскашеными не убедишь.

Да, я помню, в этом тесте ерланг мило сосет, какое может быть доверие

Моего фреймворка в этом тесте нет, мне переживать не о чем.
Мой Эрланг фреймворк быстрее следующего самого быстрого эрланг фреймворка в 15 раз :-) Я не беспокоюсь что кто-то выберет Java на основании течэмповер, тем более что raw java действительно быстра. Мне главное показать, что N2O быстрее Lift. А объективность тестирования каждый пускай оценит в силу своей квалификации.

Тебе в принципе переживать неочем ))

Мой Эрланг фреймворк быстрее следующего самого быстрого эрланг фреймворка в 15 раз :-) Я не беспокоюсь что кто-то выберет Java на основании течэмповер, тем более что raw java действительно быстра. Мне главное показать, что N2O быстрее Lift.
У тебя есть отличная маркетинговая возможность, заслать этим товарищам свой код, и они все опубликуют, ты прославишься, у тебя будет много клиентов, много денег, много наложниц, и ты умрешь от спида. Чего-же ты медлишь?

А почему именно Lift? Неожиданно как то

Lift концептуально похож на Nitrogen/N2O, они и по популярности приблизительно одинаковые.

Вы сейчас о каком-то другом Lift или о Scala Lift с нулевой популярностью и фантастической ненужностью?

Иди пиши фантастически популярный и нужный Scala Object Mapping to MongoDB :)

Отсылка к моему старому хелловорлд на курсач в университете с целью изучения Scala не в тему. Мимо

Ок. Покажи что-то новое из своего фантастически популярного и нужного :)

Спердобейся? Видели такое. Ты проиграл. Нужности лифта не добавилось.

Lift концептуально похож на Nitrogen/N2O, они и по популярности приблизительно одинаковые.
Смешно, вбил в гугл «erlang» «nitrogen» — 36k результатов
«erlang» «n2o» — 31к
«scala» «lift» — 3 mln
Твой фреймворк даже популярнее оказался в 50 раз. Ой, наоборот, что же это получается?

В курилке у себя проведи опрос, будет релевантнее.

А,я понял, может на твоем поделии ранятся какие то огромные сайты с большим трафиком? Не то что этот мелкий foursquare на лифте

Чего ты злой такой? N2O два месяца и он уже в топ 30 эрланг проектов гитхаба. Скала Лифт аудитория масштабнее, но среди джава фреймворков он тоже маргинальный (у Nitrogen и Lift одинаковое количество звезд на гитхабе, несмотря на более масштабную аудиторию Scala). Я же наоборот Лифт привел в пример, вон чуваку в треде потеряному раскажи про форсквер.

у Nitrogen и Lift одинаковое количество звезд на гитхабе, несмотря на более масштабную аудиторию Scala
Да, это безусловно крутая мерялка популярности, а числа 700(у лифта) и 300(у нитрогена) безусловно одинаковы, с некоторой степенью приближенности конечно ))
Чего ты злой такой?
Я не злой, я просто поражаюсь какой ты паталогический врун и ниасилятор

Врун тут ты.
github.com/...trogen/nitrogen
642 звезды
github.com/lift/framework
725 звезд
при непропорциональной аудитории
N2O (форк нитрогена)
303 звезды за краткий двухмесячный срок

Да, я смотрел на N2O, но я так понял что лифт популярнее и аудитория его больше ты теперь ка бы согласен ))

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Форсквер и я знаю. Только разница в том, что там лифт выбрали когда он БЫЛ популярен, а он дейсвтительно имел какую-то популярность. Но его модель уже не настолько актуальна с появлением нормальных клиентских JS фреймворков

Там в течемпавер закомичен jiffy JSON один из самых медленных JSON Erlang парсеров. Вот бенчмарк JSON эрланг парсеров: github.com/...4/erl_json_test

Кроме того в течэмпавер
{«/json», json_handler, []},
{«/db», db_handler, []}
они тестируют только JSON и DB, но не тестируют генерацию HTML и JS. Я вообще не понимаю. Если надо JSON, надо брать jsmn

lionet.livejournal.com/118853.html

Это самый быстрый JSON парсер на С в мире: alisdair.mcdiarmid.org/...mn-example.html

Вообщем я могу долго продолжать опускать этот течэмпавер, но этого, думаю, будет достаточно.

Там json парсинга нигде нету в тестах

Ага, даже парсинга нет, только генерация
github.com/...son_handler.erl
И все:
github.com/...o_world_app.erl
Вот это пацаны протестировали хорошо библиотеку jiffy наполовину!

Наверное и не старались тестировать библиотеку джиффи

Я давно уже на десятке примеров заметил что у тебя проблемы с чтением.

Вот как тестируем мы:
lionet.livejournal.com/42016.html
maxim.livejournal.com/392587.html
С графиками по каждому фремворку и с исходниками бенчмарков.

я так понял это участники пара олимпиады

Сравнение Erlang N2O vs PHP. Максимальное количесство открытых сокетов без даунгрейда на миллионах сообщений.

Name Env Description RPS Errors
-------------------------------------------------
PHP5 FCGI Script with two ?php print “OK”; ? terms inside 5K Timeouts
Nitrogen No sessions, No DSL, Simple template with two variable 1K no
N2O All enabled, sessions, Template, heavy DSL 7K no
N2O Sessions enabled, template with two variables, no DSL 10K no
N2O No sessions, No DSL, only template with two vars 15K no

Да, пых-пых настроенный самим Мастером, это конечно отличный ориентир что бы ровняться

Вполне вероятно что я что-то неправильно настроил, покажи мне где я ошибся, вот Сowboy rebar get-dep compile выдает сразу 30К без всяких настроек. Скажи че подкрутить надо в ПХП что бы он засверкал?

Я тебе уже как то уклазывал на дeбильность твоего джавовского бенчмарка, ты нравоучениям не внял, мне лень теперь еще и в пых пыхе копаться

Ты уже тут учил писать многотопоточные системы блокирующими драйверами и двухфазным коммитом. То еще было веселье

maxim.livejournal.com/422100.html

Сейчас ты решил нас научить тестировать веб фреймворки :)

Ясно, по поводу качества твоих бенчмарков у тебя возражений нету.
А по поводу двухфазного комита, ты же при всей твоей пафосности так и ниасилил предложить рабочее решение? ))

Только такие специалисты как реалити хакер могут включать в перформанс веб фреймворка (!) вычитку из базы. Они не знают что во всем вебе фронт читают из кешей. Еще один бенчмарк нашел свою ЦА.

Только такие специалисты как реалити хакер могут включать в перформанс веб фреймворка (!) вычитку из базы. Они не знают что во всем вебе фронт читают из кешей. Еще один бенчмарк нашел свою ЦА.
Это просто ты как обычно не читатель, там есть бенчмарки и с базой и без.

Этот бенчмарк уже все давно обсудили. Неквалифицированные хипстеры.
Надо мерят начиная с raw HTTP, потом накидывать роутинг, сессии и смотреть пропускную способность каждого слоя. Там побеждают фремворки с ненулевыми Errors. Вообщем очень смешно все это выглядит. Этот бенчмарк придуман для того, что бы определить квалификацию человека: если его приводят как аргумент то сразу все понятно. Нет абсолютных показателей RPS, количество реквестов и количество открытых сокетов. Это не бенчмарк.

Надо мерят начиная с raw HTTP, потом накидывать роутинг, сессии и смотреть пропускную способность каждого слоя.
В голых джавовских сервлетах есть и роутинг и сессии прямо в стандарте. Традиционно учи мат часть перед тем как умничать.

Везде есть, мерять нужно правильно. У меня на джаве опыт больше чем у тебя.

Я так и не понял какие у тебя именно есть претензии к тесту. То что там эрланг сливает?

Нет абсолютных показателей условий тестировния:
1. Requests (сколько HTTP запросов запросили)
2. Sockets (сколько реально сокетов открыли)
3. Какой RPS получился в итоге
4. Сколько было ошибок (Socket Errors, Timeouts)
5. График, начиная с какого RPS обозреваем деградацию.
Без этих пяти бенчмарк не имеет смысла.

Нет абсолютных показателей условий тестировния:
1. Requests (сколько HTTP запросов запросили)
2. Sockets (сколько реально сокетов открыли)
3. Какой RPS получился в итоге
4. Сколько было ошибок (Socket Errors, Timeouts)
5. График, начиная с какого RPS обозреваем деградацию.
Без этих пяти бенчмарк не имеет смысла.
RPS там есть, ошибки тоже, разбивка по количеству конкурентных клиентов на которой видна деградация тоже, сокеты помоему только тебе зачем то уперлись

Я думаю твои фанаты оценят этот комментарий. Прогнать миллион сообщений через один сокет — очень реальный кейс.

Буду считать что ты сам с собой сейчас разговаривал

Ну так в multiple queries, fortunes, data updates, т.е. в трёх из шести тестов cpoll_cppsp рулит. Где там нашёл первые 7 мест за jvm — хз. Или ты просто нашёл только один тест, а их там даже 12, а не 6.

Ц++ рулит в тестах где нужно интенсивно работать с БД, я думаю за счет более низкоуровневого АПИ и убирания уровней абстракции, сам веб леер у С++ сливает.

Я бы не отождествлял C++ c Linux плюс костылём epoll. Да и глупо говорить, что «сам веб леер у С++ сливает.», если в конечном итоге всё из списка так или иначе написано на C или C++.

проект открытый, можешь саконтрибьютить правильный бенчмарк

Правильный бенмарк будет сжимать видео, а все остальные будут курить в сторонке.

Да, осталась еще парочка поводов для гордости

ах-ха-ха.
єто же прекрасный тест
github.com/...ttpHandler.java

github.com/...er/php/json.php

вобщем как по мне, bench is biased

Внятно излагать мысли ты так и не научился. Жаль.

Слабый какой-то наброс, не потащит. Надо было что-то про зарплату задвигать, вот это был бы батхёрт.

гм. вы наверно не досмотрели — из 6 тестов cpp победил в трех

но с учетом того, что пшп проигрывает «лидерам» всего в 2-3 раза нереальность тестов как-бы очевидна.
лучше фапай на benchmarksgame.alioth.debian.org/...are-fastest.php

Первых 7 мест за решениями на jvm. Как это обьяснить?
jvm тащит.
Где хваленая производительность эрланга
У ерланга своя ниша
и цпп?
Ну кроме геймдева и лоулевел программинга нигде
Можно было упомянуть всякие рабби, пайтоны и пшп, ну то такое, даже немейнстримовый хаскель обогнал гвидоподелие
У ерланга своя ниша
Я как раз думал что это ниша эрланга — обрабатывать стотыщ хеллоwорлдов в секунду, а оно вона как вышло

Підписатись на коментарі