URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 118442
[ Назад ]

Исходное сообщение
"Сравнение производительности сетевого драйвера в вариантах н..."

Отправлено opennews , 12-Сен-19 11:23 
Группа исследователей из немецких университетов опубликовала результаты эксперимента, в ходе которого на разных языках программирования было разработано 10 вариантов типового драйвера для 10-гигабитных сетевых карт Intel Ixgbe (X5xx). Драйвер работает в пространстве пользователя и реализован на языкаъ C, Rust, Go, C#, Java, OCaml, Haskell, Swift, JavaScript и Python. При написании кода основное внимание уделялось достижению максимально возможной производительности с учётом особенностей каждого языка. По функциональности все варианты идентичны и состоят примерно из 1000 строк кода. Наработки проекта распространяются под лицензией BSD...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=51475


Содержание

Сообщения в этом обсуждении
"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 12-Сен-19 11:23 
о, ну так в конечном счёте всё будет переписано на C# ? (и раст тоже)

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 12-Сен-19 11:25 
как там был один из доводов (в прошлой статье про написание драйверов в Linux на Rust): "...для команд у которых нет достотачных ресурсов для тестирования кода..." или как-то так

так от C# эффективные менеджеры вообще в экстазе будут


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:29 
> для команд у которых нет достотачных ресурсов

При наличии рынка труда проблема достаточных ресурсов не существует.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено anonymous , 12-Сен-19 12:18 
А деньги на найм этих людей для тебя уже не ресурс?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено rshadow , 12-Сен-19 13:20 
То есть переводя на человеческий: при наличии спроса, предложения всегда будут?
Или даже проще: если все хотят бентли, то конечно все их получат. Да?
</sarcasm>

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Попугай Кеша , 12-Сен-19 13:38 
Да, но игрушечные

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:53 
Какого именно рынка труда, уточни.

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Anti pythorust , 14-Сен-19 15:28 
> (код выполнялся с использованием CPython 3.7 и не был совместим с PyPy, но отмечается, что оптимизация структур хранения данных могла бы повысить производительность примерно в 10 раз).

это как там получается 0 на 10 надо умножить?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 12-Сен-19 11:30 
*точнее не драйверов, а модулей ядра*

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:51 
Рад, что СИ - лидер. Нужность раста по-прежнему остаётся крайне туманной.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 12-Сен-19 16:37 
это то да, но ты на опенете такое громко не кричи, а то и тебя перепишут на расте

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Адекват , 13-Сен-19 06:54 
Ваша фраза, сэр, заставила вспомнить сериал, который я смотрел в глубоком детстве еще на черно-белом ламповом телевизоре, он назывался "капитан пауэр и солдаты будущего". Там людей в прямом смысле в цифровой код переводили. Вот и сейчас с развитием всякого рода нейроных сетей нашу личность можно воплоить в цифре (очень-очень приблизительно), и да, ради эффективности можно воплотить и расте, но лучше на СИ :)

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Коньвпальто , 13-Сен-19 08:13 
Почему же, я вот этот топик прочитал и процентов 15 отписавшихся спокойно могу, как кодеров, одной цифрой оцифровать :) без потери их качеств и вы эту цифру знаете. Кстати, спасибо за название, одно время пытался вспомнить как же он назывался.... По 2*2 вроде шел когда-то, пойду поищу посмотреть..

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Anon_Erohin , 12-Сен-19 17:51 
Да, да, давайте лучше продолжать писать дырявые программы из-за стек оверфлоу, буфер овверан и так далее, да и еще вместе мемори ликами... А потом еще команды нанимать чтобы такой код вычистить.
Если писать сейчас начинать - то только на Rust, этот тест тому доказательство.

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 23:05 
> Если писать сейчас начинать - то только на Rust

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено JL2001 , 13-Сен-19 21:07 
>> Если писать сейчас начинать - то только на Rust
> Что, когда мозилловцы наиграются с растом, переписывать на что-то другое?

там что-то не так с лицензией компилятора или патентами?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Ноя-19 00:37 
Думаю, речь про: c мозгами у фанатов Rust.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Адекват , 13-Сен-19 07:15 
> Вы с С возитесь как те луддиты в конце 19 века, бросьте
> труп, надо уже понимать что времена те прошли.

А что, сделать СИ удобным и безопасным нельзя ?
Может просто написать rust.h и делать #include <rust.h> и в СИ все будет так же хорошо, удобно и надежно как в rust но без rust ?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 13-Сен-19 10:40 
то фактически все ядра известных ОС (не свитяа Redox, конечно же гг) - один болшой memleak ? мда, что называется, "этому миру нужен супергерой". вроде такого смузи-ыксперта вроде тебя

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено bOOster , 16-Сен-19 05:12 
Метлу в руки и гастарбайтерам помогать, так как походу ни в программировании ни в уборке территорий у тебя эффективность низкая.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 21:52 
> Нужность раста по-прежнему остаётся крайне туманной.

О, свидетели сегфолта подъехали


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 13-Сен-19 10:42 
так и вижу Rаспятие на крыше их общины

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:56 
С# принудительно за гранты продвигаемый язык. В техническом плане нет никакого смысла его использовать.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аномномномнимус , 12-Сен-19 13:26 
Сначала похороните Java и всякое бейсико-паскалевское, по сравнению с ними даже C# великолепен

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 13:47 
Это цитата из рекламного буклетика от MS? Очень похоже.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено neAnonim , 12-Сен-19 17:11 
Нет. Мы студенты и это цитата из спец гайда.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:25 
Это понятно. Далеко не всякий студент способен на самостоятельное мышление.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Gemorroj , 12-Сен-19 19:04 
что конкретно не так с C#? религиозные штуки? с эстетической/технической точки зрения он вполне ок.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 20:49 
С технической и экономической точки зрения. Когда ты создаешь решения на продуктах с открытым исходном кодом. Плюс переносимость конечно и мобильные девайсы. Сегодня госы, банки и крупный бизнес топит за такие решения, а они не строятся на продуктах от MS.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено конь в пальто , 12-Сен-19 21:00 
вообще-то с точностью до наоборот, крупный заказчик готов платить за проприеритарщину. говорю так, потому как работал с госами и банками.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено JL2001 , 13-Сен-19 21:26 
> вообще-то с точностью до наоборот, крупный заказчик готов платить за проприеритарщину.
> говорю так, потому как работал с госами и банками.

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

(а тендеры это полный мрак)


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Илья , 12-Сен-19 21:57 
> на продуктах с открытым исходном кодом.

.net core открыт, я ж недавно с гитхаба кидал исходник ГЦ сюда

> Плюс переносимость и мобильные девайсы.

Xamarin native


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 13-Сен-19 10:33 
ты не поверишь, но даже разработчики Unity и Unreal Engine 4 (в котором система сборки подвязана на Mono) с тобой категорически не согласятся. не считая кучи Xamarino-водов и dotNET-товодов

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено SRM , 13-Сен-19 02:22 
Там определенно что-то не так с думалкой на основании того что в его умозаключении нет логики, как у некоторых отметившихся , с шарпом все в порядке, язык хороший.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Anonymoustus , 13-Сен-19 07:07 
> С# принудительно за гранты продвигаемый язык. В техническом плане нет никакого смысла
> его использовать.

Пока жабья IDE запускается, кодер на Сисярпе напишет, отладит и запустит в продакшын 3,5 программы.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено VEG , 13-Сен-19 09:01 
C# на порядок лучше Java как язык, он даёт очень много инструментов для оптимизации. Поэтому и быстрее. Смиритесь. Иногда MS делает хорошие продукты.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 18:19 
Понимаете, ваше знание Шарпа и незнание Явы не делает первый лучше второй. Ява и Шарп, в общем-то, одинаково плохие языки. Причём, Ява раньше была лучше. А после 8-ки стала такой же плохой, как и Шарп.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено VEG , 14-Сен-19 10:55 
Я вообще C/C++-разработчик, но имел возможность попрограммировать и на C#, и на Java.

C# — это учли ошибки Java (так как была возможность изучить её опыт), поработали над оптимизацией (те же дженерики в Java нормальные так и не завезли за столько лет), дали богатый набор инструментов для программистов, которые понимают разницу между стеком и кучей (например, stackalloc позволяет память на стеке выделять). В C# без смены языка в unsafe-блоках можно даже с C-подобными указателями работать, со всеми их плюсами в производительности и минусами в возможности случайно отстрелить себе конечности. Но если в коде вдруг есть какой-то очень чувствительный к производительности фрагмент — всегда есть возможность оптимизировать его, оставаясь в рамках C#, а не переписывая код на C/C++ и вызывая его из основной программы. Хотя, смешивать C/C++ и C# в одной программе тоже очень удобно, если нужно — MS тут тоже постаралась на славу, добавив расширения в C++ для прозрачной работы с объектами из мира .NET.

А вообще, больше всего в Java меня раздражало банальное отсутствие нормальных signed/unsigned интов на выбор, это же кошмар, они своего среднего разработчика совсем за идиота что-ли держат, который не сможет разобраться с знаковыми и беззнаковыми интами? =)


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено лютый жабист__ , 16-Сен-19 12:03 
>больше всего в Java меня раздражало банальное отсутствие нормальных signed/unsigned интов

Так хорошо начал и так жидко слился. Можно сделать вывод, что c# ты вроде знаешь, не писал бы про java совсем, был бы неплохой пост.

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 16-Сен-19 21:46 
Пишу на дотнете уже черти знает сколько времени. Ни разу не доходил до небезопасного кода.
NullReferenceException, забытые подписки делегатов, арифметическое переполнение, двойной Dispose, дедлоки, гонки и прочие мелочи постреливают периодически.

Но боже, как я рад, что это не неопределённое поведение в повреждённой памяти. Кто все эти люди, которые могут позволить себе писать на c++ - я не представляю.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено DeadMustdie2 , 17-Сен-19 17:47 
> Но боже, как я рад, что это не неопределённое поведение в повреждённой памяти.

valgrind в помощь.

До него было тяжеловато, да.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено JL2001 , 13-Сен-19 21:30 
> C# на порядок лучше Java как язык, он даёт очень много инструментов
> для оптимизации. Поэтому и быстрее. Смиритесь. Иногда MS делает хорошие продукты.

это что за инструменты оптимизации такие волшебные? можно компилятору/jit-у что-то подсказать?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 00:54 
Например, value-типы, unsafe с указателями и другой низкоуровщиной, P/Invoke для вызова функций в нативных библиотеках без промежуточных обёрток а-ля JNI.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено iPony129412 , 12-Сен-19 11:27 
Эксперты Opennet наверно опечалены, что паскаля нет 😃

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:30 
Bash.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Antonynus , 12-Сен-19 20:02 
вместо него петон

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Ноя-19 00:52 
Кому то и Perl, а кому то и .BAT,
а остальным 99.9% - вообще ничего перечисленное ненужно :)

А, тут я обширно чуть коснулся скорсоти Rust
http://www.opennet.ru/opennews/art.shtml?num=51837
(и даже этого теста - "очередного Rust-бенчмарка..." как я его именую)


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:30 
Да не-е-ет. Дельфи же. Паскаль - это то, от чего их универские преподы пёрлись.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:57 
Ну так он и создавался как язык для обучения программированию

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аномномномнимус , 12-Сен-19 13:27 
Создавался-создавался, да не высоздался. Есть Python для обучения

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Led , 12-Сен-19 20:38 
Обучение программированию, а не мастурбации.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Catwoolfii , 12-Сен-19 11:37 
Плюсов тоже нет...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:25 
да и кроме C одни минусы...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Alen , 12-Сен-19 12:52 
К сожалению нет реализации на ассемблере

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 08:53 
Для какого именно процессора вас интересует ассемблер?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 10:00 
из новости CPU Xeon E3-1230 v2 3.3 GHz

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Alen , 13-Сен-19 10:03 
>Для какого именно процессора вас интересует ассемблер?

Решил блеснуть эрудицией? Тогда тебе должно быть извесно, что проц выбирается под задачу. В статье у парней была задача СРАВНИТЬ производительность программ. Соответственно главное не то, на каком, а то, чтоб на нем запустились все написанные варианты.

P.S Ну и удачи вам конечно в добывании железа в которое можно вставить сетевую карту описанную в статье, с архитектурой отличной от x86 или AMD64


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено InuYasha , 13-Сен-19 11:34 
А в ARM-машинах разве нет PCI-express?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Alen , 13-Сен-19 15:00 
Я не сказал, что нет, но добыть такое железо - интересный квест  :)
А запускать тесты в эмуляторе - не будут показательны в плане сравнения

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Ноя-19 00:56 
==> К сожалению нет реализации на ассемблере
Вас бы устроил кривооптмизирвоанный или вообще антиптимизирвоанный вариант для пиара Rust?
Ну так и не просите.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено pda , 12-Сен-19 17:15 
Куда больше прикалывает, что кого-то от паскаля столь припекает, что над ним продолжают глумиться лет двадцать спустя, как утихли холивары про него.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено soarin , 12-Сен-19 19:47 
> от паскаля столь припекает, что над ним продолжают глумиться лет двадцать спустя, как утихли холивары про него.

ну да, ну да... https://www.opennet.ru/openforum/vsluhforumID3/118392.html#16


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 20:06 
Go есть.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:32 
Какая-то ангажированная муть.
C# не может быть настолько быстрее Java, Swift, OCaml, по той простой причине, что он не быстрее.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:51 
В неокрепших умах, наверное, C# все же не быстрее Java и пр.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:03 
Не быстрее. Смысл его использования вообще стремится к нулю. Только постоянно вливаемое бабло в его пиар создает видимость его востребованности.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аномномномнимус , 12-Сен-19 13:28 
Ты сейчас полностью описал историю приобретения популярности у Java

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 13:36 
Java не нуждается в популяризации, она прочно удерживает определенные ниши. Это ее недокопию пытаются везде втюхивать, ибо за так нафиг никому не нужна.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аномномномнимус , 12-Сен-19 18:24 
Лол. А как по твоему это безобразие получило популярность в "определённых нишах"? Долго пиарили, втюхивали всем подряд и ездили по ушам, всё по вышеуказанной методике. Чуда не случилось

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 19:36 
Кому что впаривали? Бизнес посчитал деньги и принял на вооружение.
По сути тоже самое и с C#, только он огорожен MS продуктами за которые ты будешь платить в довесок.

Чуда не случилось у MS, которая скопировала технологию и вынуждена по сей день ее ногой пропихивать. У жавы все прекрасно - энтерпрайз(веб, сервисы) + андройд.

На рынке все распределено. Были PHP, Java. Пришли в этот сегмент нода, руби, питон, го. Все они ввиду своих особенностей освоили часть рынка, а C# это огороженный клон Java без внятного обоснования для его применения.

Все что делает MS для серверного сегмента можно спокойно заменить на более качественные решения, зачастую бесплатные и с открытым исходным кодом. Сишарп разраб обязательно потянет за собой винду и т.д, как и свифт разраб - макось.

Например, госы и банки сегодня отдают приоритет серверным решениям на основе продуктов с открытым исходным кодом. Винда везде выпиливается на корню.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Илья , 12-Сен-19 22:08 
> Сишарп разраб обязательно потянет за собой винду и т.д, как и свифт разраб - макось.

rider одинакого запускается как на linux, так и на macos.
исполняемая среда есть mono и .netcore, + контейнеры если так пожелаете. Чего вам еще нужно?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено JL2001 , 13-Сен-19 21:43 
>> Сишарп разраб обязательно потянет за собой винду и т.д, как и свифт разраб - макось.
> rider одинакого запускается как на linux, так и на macos.
> исполняемая среда есть mono и .netcore, + контейнеры если так пожелаете. Чего
> вам еще нужно?

сколько лет этому "одинаково"?
вот прям щас - возможно


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аномномномнимус , 13-Сен-19 09:29 
Бизнес развесил уши и в 2002-2003 особо деффективные манагеры, в основном банков, радостно глотали "работает на миллиардах устройств", хотя тех устройств на тот момент и было то винда, да siemens m55. С тех пор решения этих дефективных манагеров либо приходится болезненно поддерживать в хоть каком-то состоянии, либо переписывать на руби, пайтон, asp.net. Go это всё-таки меньше про веб, больше про отдельный инструмент сегодня, хотя он конечно отлично набирает обороты и будет успешнее жабы.

Андроидовцы уже не раз пожалели что взяли за основу жабу. Особенно после того как окакл половину купленного у санок похоронил, а за вторую начал кидать необоснованные претензии. Т.е. это тоже была большая ошибка какого-то манагера.

PHP в приличных конторах выпиливается, особенно если есть реальный бэкенд, остаётся максимум лэндинг на отдельном хосте на котором манагеры играются в ребрендинг, редезигн и СЕО, благо для того же WP тем навалом, да и разработчики считай дармовые, готовы работать почти за еду (в соответствии с квалификацией).

Всё что сделано на жабе можно спокойно заменить на более качественные открытые решения. Шарп давно есть и в никсах, и на мобилках, но основной вектор их развития - веб, там вообще до шарабана какая у тебя ОС. И да, он уже достаточно давно абсолютно открытый и любой адекватный пользователь может в него накоммитать чего-нибудь полезного.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено JL2001 , 13-Сен-19 21:40 
> Лол. А как по твоему это безобразие получило популярность в "определённых нишах"?
> Долго пиарили, втюхивали всем подряд и ездили по ушам, всё по
> вышеуказанной методике.

кросплатформенность, неплохой сам язык, легко учить, легко писать, при этом достаточно быстрый, дофига всяких нужных энтерпрайзу либ, отличная IDE (у c# была сильно хуже)
я не видел особой рекламы и втюхивания, выбор был java/c# и как только слышали "высоконагруженный отказоустойчивый сервер на винде" - выбирали жаву и невинду


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено bOOster , 16-Сен-19 05:40 
Ты походу еще не родился в то время когда JAVA появилась. И не в курсе что она практически первой и единственной виртуальной машиной с переносимым исходным кодом и работавшей практически везде где работала виртуальная машина что и нужно было бизнесу.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:00 
Популярность Java приобрело как решение удешевляющее разработку ПО. Единственное, на начальном этапе у нее была очень унылая производительность.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено заминированный тапок , 12-Сен-19 16:44 
на начальном этапе... а на следующем этапе осталась такой же
просто железо доросло до ей потребностей

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 20:23 
JIT появился не сразу. Так же на протяжении всего времени вносились оптимизации.

По второму пункту - да, это вносит некоторый оверхед, но не критично.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 23:09 
> динамическая природа примитивных типов и полное остуствие статики

Что под этим подразумевается?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 22:20 
Под этим подразумвается, что https://openjdk.java.net/projects/valhalla/ всё ещё в разработке, а без этого всё, кроме примитивных типов, выделяется в куче, а не на стеке.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 15-Сен-19 03:06 
И каким образом аллокации в куче относятся к "динамическая природа примитивных типов и полное остуствие статики"?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Led , 12-Сен-19 20:40 
> на начальном этапе у нее была очень унылая производительность.

И этот "начальный этап" продолжается и прогрессирует.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено leap42 , 12-Сен-19 12:07 
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

M$ подкупила Debian через своих наймитов RH (IBM)? А может просто шапочка из фольги обзор закрывает?)


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:21 
Тест-то сами смотрели? Где преимущество в скорости у C#?

Идут один в один, за исключением одного теста, что тоже не факт что сделано оптимально.
По моему ясно, что технологически у них схожая реализация соответстввенно и производительность будет сопоставима.

Также производительность зависит от сборщика мусора. Под JVM их есть несколько штук.

Поэтому не следует очаровываться насчет C#. По сравнению с JVM он обладает только известными недостатками. Кто его использует сам на себя накладывает ограничения.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:59 
По сравнению с JVM он обладает ещё и известными (не вам) преимуществами. Например, большим количеством низкоуровневых обёрток. Поэтому в драйвере на C# 39 строк кода на С, а в драйвере на жавке куда больше.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 13:28 
Это частный случай, не меняющий общего тренда. При необходимости можно скомпилять нативно либу и дергать, что собственно и разумней всего сделать если вы хотите высокую производительность без оговорок.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:37 
При необходимости можно и на ассемблере написать. Здесь же  рассматривается другой случай, а именно тот, которым является заголовок статьи. Читаем внимательно и без "необходимости".

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 19:39 
Без необходимости можно написать на чем-то другом. Осваивать бесперспективный язык ради написания драйвера, как-то глупо что ли.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 23:45 
> преимуществами. Например, большим количеством низкоуровневых обёрток.

А ещё дженериками без type erasure, value-типами, перегрузкой операторов (не всем нравится, но лично я предпочитаю читать/писать `a + b * c` вместо чего-то вроде `a.add(b.mul(c))`, и, чем сложнее формула, тем трэшовее вариант с "обычными" методами), паттерн матчингом, именованными и опциональными параметрами методов, async-await и другими ништяками, появление которых в Java находится, в лучшем случае, на стадии планов и обсуждений. Дотнет можно ругать за некоторую завязанность на MS вообще и винду в частности, по части языковых фич он давно обошёл жабу.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 20:08 
Нет, в этих бенчах отражено ожидаемое поведение. Если запускать программу очень много раз на 5 секунд и каждый раз очищать файловый кеш между запусками.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 09:24 
> M$ подкупила Debian через своих наймитов RH (IBM)?

Открываем тест "regex-redux" с самой большой разницей по времени выполнения и видим, что реализация на C# для регулярных выражений вместо стандартной библиотеки .NET использует PCRE с JIT-ом и не конвертирует прочитанные из файла байты в строку.

Открываем "k-nucleotide" и видим, что реализация на C# входные данные читает и парсит в байтовых массивах, а реализация на Java через InputStreamReader конвертирует прочитанные байты в строку, а потом эту строку конвертирует обратно в байты.

Открываем "pidigits" и видим, что реализация на C# выводит цифры сразу в stdout, а *однопоточная* реализация на Java теребонькает *потокобезопасный* (бессмысленный оверхед) StringBuffer, создавая новый его экземпляр (бессмысленная нагрузка на GC) на каждые 10 цифр.

В остальных тестах разница составляет доли секунды, поэтому можно ограничиться "mandelbrot", где реализация на C# использует пул потоков и собирает результаты в одномерный массив, который сразу весь и выводит, а в реализации на Java тупо массив потоков, пишушщих в несколько массивов с "синхронизацией" через атомарную переменную.

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Fracta1L , 12-Сен-19 12:10 
Люблю запах пригоревших догм по утрам

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:31 
Смотрите с пригоранием поосторожней там, так можно и воспламенится. К ожогам прилагайте рекламные буклеты от MS.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:07 
В Java по любому использовали какой-то легаси stop-the-world GC иначе я не могу объяснить такой слив С-диез не только по throughput, но и по латенси.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:32 
Нет никакого разумного объяснения такого прорыва C# и Go. Тоже подозрения, что тупо тормоза GC или условия тестирования кривые.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 12-Сен-19 14:43 
Value types в Java есть? Нет. Вот и в исследовании предполагают, что из-за этого.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:07 
Уже реализовано, но не протолкнули в мейнстрим.
https://medium.com/@ramtop/a-taste-of-value-types-1a8a1...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Илья , 12-Сен-19 22:14 
Кто медиум читает - тот себе зла желает

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено turbo2001 , 12-Сен-19 18:09 
Даже с Epsilon тормозит: https://github.com/ixy-languages/ixy-languages/blob/master/J...


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Dee , 12-Сен-19 18:55 
У них там pdf-ка с разъяснениями есть. В C# есть unsafe блоки, указатели, value типы, можно почти полностью избежать GC. А в Java не выходит избежать, все время аллокации, потому на сборку мусора больше времени уходит.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено логика , 13-Сен-19 13:16 
тогда это тест только тех, у кого "не выходит избежать"

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Vkni , 14-Сен-19 18:34 
Есть техника работы со своими memory pool - выделяете массив, а дальше работаете с ним.

На Ocaml'е народ из Jane Street занимается автоматическими спекуляциями примерно в этой технике - вполне нормально получается. Я не очень понимаю, почему они пишут low latence программы не на C, но тем не менее.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 15:21 
> C# не может быть настолько быстрее Java

Хорошая мантра. Повторяй неустанно.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:16 
Зачем повторять. Видел своими глазами как банк переехал C# на Java, весь процессинг был полностью переписан. Сервера перешли на Linux. После чего пазл сложился и наконец-таки все стало работать как следует, стабильно и с достаточной производительностью.

Такое зрелище будет помощнее любой мантры.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено funny.falcon , 12-Сен-19 21:43 
> весь процессинг был полностью переписан.

Думаю, основная причина все-таки в этом. И особо не важно было, что «на Java».

В процессе любого переписывания выявляются узкие места, проводится наболевший рефакторинг.

Но убедить руководство переписать с “C# на C#” практически невозможно. А вот перейти на «более стабильную и проверенную технологию» шанс есть.

Ну и «сервера перешли на Linux» намекает, что это был ещё .Net Framework на Windows. В бумаге же наверняка фигурирует .Net Core, который совершенствуется на глазах и показывает себя молодцом.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено фывфывфыв , 12-Сен-19 16:53 
C# будет быстрее Java в сетевом стеке как минимум потому, что там есть unsigned и на 8-битно число не нужно заводить 16-битное, на 16-битное, 32-битное и т.д. по списку.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено КО , 12-Сен-19 17:54 
Ну если авторы умели писать быстрые программы на C# и не умели на java, то вполне

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Нанобот , 12-Сен-19 11:33 
нужно добавить 1С! ...просто чтобы питон не был замыкающим

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено anonymous , 12-Сен-19 11:48 
Но для этого им (немцам) пришлось бы выучить русский язык, а это, кмк, уже слишком :-)

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено ryoken , 12-Сен-19 11:52 
Ходят мифы, что в 1С таки есть англ.яз :D. Но российским 1с-писакам он неизвестен :D.
Чёт они про жопоскрипт забыли. Ну и ассемблера нету, для полноты веселья :D.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено MD , 12-Сен-19 15:43 
Это не миф, наверное. Лет 15 назад для 1С 8 сам писал модуль связи с БД. Визуал бейсик.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено 111c , 13-Сен-19 09:27 
есть то он есть, но переводили имена функций и объектов там "промтом" и буквально, так что ни один здравомыслящий англоговорящий не поймет, или будет ловить лулзы с этих "названий"

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено MD , 15-Сен-19 11:39 
Я писал на чистом бейсике.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено letsmac , 12-Сен-19 13:27 
1C как бы не тюринг полный язык.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Нанобот , 12-Сен-19 18:50 
пруф есть?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 13:14 
Чёт сомнительно, потому что даже странный css никогда не предназначенный для программирования является Тьюринг-полным.
Да что там говорить по css, даже в игре Factorio фанаты делали клон i8080.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:34 
Только C. Недавно свои архивы просматривал. Извлек программу - вьювер снимков для одного из первых отечественных томографов, написанную в 1995 году на языке C для MS-DOS. Запустил в 10-ке. Работает! И даже позволяет картинки захватывать в буфер обмена.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено proninyaroslav , 12-Сен-19 11:55 
Может ещё C умеет платформо-зависимые компоненты писать переносимыми? В основном не язык определяет долговечность проекта, а голова и руки программиста.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:49 
Видимо на винде было написано. Но скорее всего с прямой работой с WinAPI, вот и совместимо.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено AnonPlus , 12-Сен-19 15:34 
16-разрядная DOS-программа? С 64-битными виндами уже несовместимо, там эмулятор WOW16 выпилили давным-давно.

А в 32=битных запуститсч, чего б нет.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 12:29 
Программа, написанная на Си под DOS, и работает копирование картинки в буфер обмена Windows 10? Если честно, то верится с трудом (точнее - не верится).
Может вы имеете ввиду просто скриншот экрана, где помимо прочего есть так же и окно с вашей чудо-программой, которую вы каким-то образом запустили в Win10 (что тоже странно, т.к. ЕМНИП оттуда выпилили режим совместимости с DOS) с заголовком, рамкой и т.д. ?
Не могли бы вы больше технических подробностей привести?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 15-Сен-19 00:34 
Звездобол, откуда в 10-ке поддержка DOS'а?!

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:36 
А как же brainfuck?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Led , 12-Сен-19 20:43 
> А как же brainfuck?

При чём тут твоя жена?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Aninomuz , 15-Сен-19 20:04 
[-3] + 11 = 14 школоты
Остальные в курсе.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:36 
сюда, для полной картины, еще бы статистику по потреблению памяти

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:13 
Еще время разработки и зп программиста. Для написания драйвера на С привлеки гуру, который на С лабает 20 лет. Фрика на расте, который в немецкий университетах из сабжа был один. И первокурсник который скачал экзампл драйвера на Го и поправил пару переменных.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено vitalif , 12-Сен-19 11:39 
Блин, я стесняюсь спросить - а КАК они написали драйвер сетевой карты на всех языках, кроме C, Rust и Go? На питоне например? Это как вообще?

Где код посмотреть?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 12-Сен-19 11:53 
написали внешний подгружаемый модуль, работающий примерно как обычная программа в пространстве пользователя. там жек написано

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено ыы , 12-Сен-19 12:27 
> внешний подгружаемый модуль

написанный на чем?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 12-Сен-19 18:32 
я тоже с небольшим оптимизмом отношусь к драйверам на интерпретируемых языках. но они писали на всем)) там же описано. а о внешних подгружаемых модулях полагаю все слышали. еще со времен elf такие существовали. просто опять раст впихали.... ну не знают как и где его пропиарить.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Алексей Михайлович , 16-Сен-19 20:51 
А в чём проблема Rust, кроме того, что ты его ненавидишь по религиозным соображениям? Как видишь, он показывает себя отлично.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:55 
> Где код посмотреть?

https://github.com/ixy-languages

Например
https://github.com/ixy-languages/ixy.py
https://github.com/ixy-languages/ixy.js


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено vitalif , 12-Сен-19 14:11 
А, спасибо, не осознал что отдельные репозитории

Через mmap и memoryview общаются...

Офигеть, открытие - до этого я в юзерспейсе видел только Intel DPDK, а он работает через vfio-pci / uio_pci_generic, т.е. через специальный драйвер ядра. А тут вроде напрямую


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 16:05 
Главное — никакой низкоуровневой работы с памятью!

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено freehck , 12-Сен-19 11:41 
Хотелось бы более детального сравнения с ML. Насколько сильно проседает производительность при использовании OCaml и Haskell?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Vkni , 15-Сен-19 03:36 
> Хотелось бы более детального сравнения с ML. Насколько сильно проседает производительность
> при использовании OCaml и Haskell?

Смотря как писать, думаю. Вообще, там есть копирование массивов, кмк, излишнее - см.
https://github.com/ixy-languages/ixy.ml/blob/master/lib/ixy....

https://github.com/ixy-languages/ixy.ml/blob/master/lib/iXGB... и т.д. немного не идиоматично. По мне лучше бы

  | RDT i when i < 64 -> 0x01018 + (i * 0x40)
  | RDT i ->             0x0D018 + ((i - 64) * 0x40)

С одной стороны, это идиоматический код, а с другой - там же всё равно DMA, и надо писать аккуратно. С третьей - зачем эмулировать язык C на Ocaml/Haskell? Возможно срезы (Slice), будь они реализованы в камле, помогли бы избавиться от копирования массивов.

----------------------------
По Haskell - ну беглый взгляд говорит, что почему-то не везде newtype стоят, можно директивы INLINE расставить, опять-таки, копирование буфера.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено freehck , 15-Сен-19 10:36 
>> Хотелось бы более детального сравнения с ML. Насколько сильно проседает производительность
>> при использовании OCaml и Haskell?
> Смотря как писать, думаю.

Я думаю, что писать надо, как криворукая обезьяна. То бишь как все.
Ну, вероятно, копирование буферов там и правда зря. А вот на идиоматиччность наплевать -- никто на неё смотреть не будет.

Спасибо за разбор, Vkni. Если Вы ещё поиграетесь с этим куском кода, и сможете снизить потери производительности, дайте плиз знать, до каких пределов удалось оптимизировать.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Vkni , 15-Сен-19 16:01 
> Я думаю, что писать надо, как криворукая обезьяна. То бишь как все.

Тогда, в теории, нужен Rust. Но он слишком наворочен. И, конечно, на С удобнее писать - всё-таки С прямо предназначен для таких штук.

> Если Вы ещё поиграетесь с этим куском кода

Увы, нет времени.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено AlexTedx , 12-Сен-19 11:43 
Rust one love

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:43 
Кто проплатил исследователей, тот и в топе.
Единственное нельзя было сделать победителем Go или C#, это бы не зашло.
Где С++?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено anonymous , 12-Сен-19 11:51 
Там есть ссылки на код: https://github.com/ixy-languages/ixy-languages

Если на каком-то языке сделано неправильно, то есть смысл предложить PR. Ну или хотя бы поделиться соображениями тут в комментариях.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:28 
> отмечается, что оптимизация структур хранения данных могла бы повысить производительность примерно в 10 раз

А что тут предлагать? По моему очевидно какая цена этому «исследованию».


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 19:34 
> Если на каком-то языке сделано неправильно, то есть смысл предложить PR.

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено anonymous , 12-Сен-19 20:01 
То есть по существу сказать нечего? :)

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Коньвпальто , 13-Сен-19 08:25 
По существу авторы теста сами отписались, добавить тут абсолютно нечего. Просто одного наличия как минимум двух вариантов и отсутствие асемблера и еще, как минимум, плюсов делает это произведение как минимум похожим скорей на измышления неокрепшего кодера над выбором самого офигенного языка программирования в мире, дабы точно не пролететь с карьерой в мире информационных технологий. Ну пусть ковыряется, жалко чтоль, однозначно плюс к за труд, но с выводами лучше было вот так вот, в открытый мир, пока не лезть ;) ну или хотябы убрать пару вариантов, чтобы не выглядеть клоуном.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Led , 12-Сен-19 20:45 
> Где С++?

Не провоцируй: честный ответ на опеннете забанят.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Адекват , 13-Сен-19 07:25 
> Где С++?

Пока все еще компилируется.



"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено th3m3 , 12-Сен-19 11:50 
Rust - рулит, что и требовалось доказать.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:53 
Это си рулит. Сорцы открой своего хруста.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Zzzzz , 12-Сен-19 12:11 
Открыл.

Rust 97.5%     Python 0.6%     JavaScript 0.4%     C++ 0.3%     Makefile 0.3%     Yacc 0.2%     Other 0.7%


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:12 
Молодец, теперь посмотри как это сделано.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Zzzzz , 12-Сен-19 14:11 
Посмотрел. Все на Rust, иногда дергаются библиотеки типа libc, но дурашка других в линюхах-то нет.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 05:11 
То есть, если я буду дёргать из js библиотечный код, то можно сказать, что у меня всё на js?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:53 
Драйвер на руст - это unsafe вызовы libc. Короче это - драйвер на си. Растоадепты, как обычно, всё украли и выдали за своё.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено burjui , 12-Сен-19 15:18 
Позорище, даже в сорцы не глядел, а такие же безмозглые хейтеры плюсики ставят, поддакивают.

$ loc              
--------------------------------------------------------------------------------
Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
Rust                     9         6344          895          631         4818
Markdown                 1          143           47            0           96
Toml                     1           13            2            0           11
Bourne Shell             1           10            0            1            9
--------------------------------------------------------------------------------
Total                   12         6510          944          632         4934
--------------------------------------------------------------------------------

$ grep -r unsafe | wc -l
55


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 11:58 
А можно больше аргументации в пользу раст? - из перевода неясно, почему же такой вывод. Мне интересен раст, но вот именно в драйверах критична скорость, нет смысла переходить с С.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:09 
Памятебезопасность. Если у тебя неограниченное количество программистов с опытом на С в железках, тебе не надо.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 12-Сен-19 13:37 
Я вот удивляюсь, зачем в офисах С программистов всякие перила на лестницах, двери в лифтах понатыканы? Где-то даже таблички "мокрый пол" ставят. Внимательно смотри куда идёшь и всё будет в порядке. Unsafe означает: "Наткнулся на перила, подумал и решил, что стоит перепрыгнуть".

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Кодер , 12-Сен-19 12:02 
Вот ведь в "Одноклассниках" люди мучаются с явой, и не знают, какая она медленная для сетевых задач..
Исходнички бы посмотреть, как эти тестеры с сетью работали...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:05 
Ну открой да посмотри, исходники есть для всех тестов.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:11 
В исходниках не написано с какими параметрами запускали виртуальную машину.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Нанобот , 12-Сен-19 18:57 
о да, любимая отмазка свидетелей джавы: джава тормозит не из-за кривизны рук разработчиков, а из-за неправильных параметров запуска ВМ

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 19:44 
Внезапно, так и есть. Авторы Java-версии открыто признают, что не заморачиваются и аллоцируют по объекту на пакет ("we still allocate around 20 bytes on average per forwarded packet"). Т.е. вместо самой программы они бенчмаркают сборщик мусора. А ещё они зачем-то используют Unsafe и volatile-поля, тем самым не давая JVM выполнять большинство оптимизации.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 02:17 
Самый интересный комментарий

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Wilem , 15-Сен-19 18:54 
Большинство жаверов кстати действительно не знают, какая она медленная.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:03 
На эрланге есть?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:04 
Возьми сишный драйвер, завяжи обмен с устройством на stdin/stdout, прикрути к порту evm и померяй.
Звучит глупо? Да, потому что эрланг не для этого.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 20:56 
А драйвер на джаваскрипте это не глупо? К тому же я слышал что эрланг используют там где нужно low latency.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 14:05 
Не смеши мои памперсы. EVM в усмерть ужирает память и особенно CPU на задаче чутьболее сложной и выходящей из Си рантайма. Так что так только звонки форвардить...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 19:33 
Насчёт low latency не скажу, есть среди его характеристик некая "soft real-time", так это просто возможность сообщить об ошибке, если воркер не вернул результат запроса в течение заданного таймаута.
Главная фишка Эрланга, как принято считать - в неубиваемости. Ошибки и непредвиденные ситуации возникнут по-любому, а значит давайте не избегать ошибок, а быть к ним готовыми. Отсюда парадигма "Let it crash" - "Пусть грохнется".

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено mick , 12-Сен-19 12:10 
Ерундой занимаются, а ничего что есть специализированый язык Vala для создания кода с безопасной работой с памятью, и компилируемый/интерпретируемый в чистый C, почему то не включили в обзор, случайность ? не думаю ...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 12-Сен-19 14:14 
А они точно про него слышали? Ищем "LANG_NAME programming language" в гугле. Количество результатов: Vala - 3,740, Ada - 107,000, C - 4,880,000, C# - 721,000, D - 557,000, Nim - 8,990, Rust - 201,000.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено ф , 15-Сен-19 08:07 
Вот D интересно увидеть в подобном сравнении.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено exSun , 12-Сен-19 12:11 
Ну наконец-то https://imgur.com/NFinaiK

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:15 
Зато переносимость.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Ilya Indigo , 12-Сен-19 12:26 
Где C++ в тестах?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 14:06 
Почти все противники С++ в разработке железа и оборудования. Не видать вам классов в драйверах как своих ушей =)

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Ilya Indigo , 13-Сен-19 14:18 
Я сам противник плюсов в драйверах и низкоуровневых библиотеках, но если эти "утырки", додумались запихнуть в тест решётку, жабу и даже пихон с JS, то отсутствие плюсов можно объяснить не иначе что они добавили их, но они уделали ржавого по всем пунктам, и их пришлось удалить из графика.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:27 
Блин. На JavaScript нельзя писать драйвера. Обидно :(

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено bvs23bkv33 , 12-Сен-19 12:29 
> язык Rust является лучшим кандидатом для разработки драйверов

сначала культурные люди напишут на расте а потом какой-то бородач перепишет всё на сях и снова все будут пользоваться нормально написанным драйвером потому что он быстрее
2% тормознутости растового драйвера помноженные на годы использования не стоят того чтоб экономить на нормальном программисте


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 11:48 
ох уж эти мифические нормальные си-программисты, которые никогда не ошибаются. Пока твой нормальный си-программист будет ошибки отлавливать в своем драйвере, растовый нормальный программист напишет десяток работоспособных приблуд с минимумом ошибок.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:34 
> Замкнул рейтинг драйвер на языке Python, который смог обработать всего 0.14 млн пакетов в секунду.

GIL всех схоронил


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 12:53 
Нет, почитай новость, они _специально_ сделали драйвер на питоне самым медленным.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено rshadow , 12-Сен-19 13:31 
По всей видимости они просто ниасилили написать на питоне. Но ведь это же такой простой язык на котором напишет и макака...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 15:22 
Недавно делал программу на питоне с хитрым перемножением-сложением матриц. Работает, но медлено. Переписал с использованием фич питона, с использованием list-ов,  yielld-ов и zap-ов. Не помогло. Переписал, заменив всё вызовами numpy. Ускорилось на 3 порядка.

Вывод: оптимизации в питоне — вещь неочевидная.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Crazy Alex , 12-Сен-19 16:16 
Вывод - использовать нативный код, что и было сделано с numpy

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено rshadow , 12-Сен-19 18:23 
Про то и речь, что написали вычислительное ядро на Си. И обернули питоном.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено nobody , 12-Сен-19 19:58 
numpy использует библиотеки blas / openblas , в большой части написанные на фортране (например https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide)

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Ушастый , 13-Сен-19 22:10 
Не порите чушь, ей больно. Исторически BLAS действительно был написан на фортране, но сейчас от фортрана там остался только API (которым и не пользуется никто, все давно переехали на сишное API, CBLAS). Тот же OpenBLAS написан на сях с ассемблерными вставками, SSE и AVX для выжимания каждой капли производительности из железа.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено анонимумуму , 12-Сен-19 12:37 
> При написании кода основное внимание уделялось достижению максимально возможной производительности с учётом особенностей каждого языка.
> Реализация на Python была использована для оценки скорости работы интерпретаторов без JIT и без специфичных оптимизаций (код выполнялся с использованием CPython 3.7 и не был совместим с PyPy, но отмечается, что оптимизация структур хранения данных могла бы повысить производительность примерно в 10 раз).

Мне одному кажутся эти два абзаца противоречащими друг другу?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено анонимумуму , 12-Сен-19 12:39 
А, ну понятно.

> Performance is not the primary goal of this (Pytohn - прим. меня) version of our driver, it is the only implementation presented here that is not explicitly optimized for performance. It is meant as a simple prototyping environment for PCIe drivers and as an educational tool


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено rshadow , 12-Сен-19 13:34 
То есть, если использовать еще один вариант питона, и подключить нормальные Си библиотеки, то он тоже сможет потягаться.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Dnina , 12-Сен-19 21:24 
Получается, что питонистам нужно знать си, чтобы писать на нём библиотеки для питона, если нет нужного функционала?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Коньвпальто , 13-Сен-19 08:03 
Получается, что питонистам как я и яваскриптистам с явистами, в целом вообще незачем писать дрова для сетевых карт. Это все равно что шуруповертом гвозди забивать. Ну да, возможно, в принципе и, наверное, весело.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 15:14 
Тестирование производительность, но этот вариант мы делаем без прицела на производительность. Не то что бы я за дрова на питоне, но это какой-то бред.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено a3k , 12-Сен-19 19:37 
Ну так ни у кого не было сомнений, что чисто интерпретируемый язык будет работать медленно.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Коньвпальто , 13-Сен-19 08:05 
Тут не всем это очевидно, это очевидно.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено anonismus , 12-Сен-19 12:38 
> almost matches the speed of the C implementation but with the added features of Go (~10% performance loss, depending on batch sizes and CPU speed)

Как я и говорил, у Go оверхед в 10-15%, если писать оптимально.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено qwerty123 , 12-Сен-19 21:16 

>Как я и говорил, у Go оверхед в 10-15%, если писать оптимально.

А если писать на С, то вообще нет.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 11:50 
...но вместо оверхеда появляется букет ошибок, некоторые из которых находятся и фиксятся через десятилетия.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Ordu , 13-Сен-19 12:17 
Есть там оверхед. https://github.com/ixy-languages/ixy-languages/blob/master/R...

Там статья берёт вопрос "почему раст оказался медленнее", переформулирует его в формат "почему раст так мало отстал -- не на десятки процентов, а на единицы" (приводя аргументы в пользу того, что это более правильная постановка вопроса), и предлагает ответ, основываясь за замерах профайлера. Часть ответа -- C очень неэффективно работает с кешом, мажет мимо L1 три раза из четырёх.

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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Leo90 , 12-Сен-19 12:51 
minix3 уже все сделал.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 14:08 
А не Rustовый Redux все уже сделал

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено anonismus , 12-Сен-19 12:53 
> Предоставляемые в Rust возможности позволяют избавиться от проблем, возникающих из-за низкоуровневой работы с памятью,

Через использование 49 unsafe блоков с низкоуровневой работой с памятью? Классно избавились, зачёт.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 13:17 
Раст более безопасен. Но не полностью) Читай впитывай https://news.ycombinator.com/item?id=16962551

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:01 
unsafe используется для взаимодействия безопасного кода rust с "внешним миром", здесь - API ядра Linux.
Для желающих разобраться с unsafe есть https://doc.rust-lang.org/nomicon/index.html

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено kiwinix , 12-Сен-19 14:20 
Дело в том, что когда ты используешь unsafe ты знаешь что на самом то деле оно безопасно..

Типа ты понимаешь что творишь.
Это как указатель что "я знаю что тут возможно выйти за границы буфера, но этого по моему индексу никогда не случится"

Поэтому да, так безопасно


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Александр , 12-Сен-19 15:06 
Дело в том, что когда ты используешь Си ты знаешь что на самом то деле оно безопасно..
Типа ты понимаешь что творишь.
Это как указатель что "я знаю что тут возможно выйти за границы буфера, но этого по моему индексу никогда не случится"

Поэтому да, так безопасно


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 12-Сен-19 15:13 
Дело в том, что когда ты пишешь каждую строчку на Си ты знаешь что на самом то деле оно безопасно..

Это как указатель "Я - супермен, я - делаю в 500 раз меньше ошибок, чем всякие там прочие".

Поэтому да, так безопасно


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено ixrws , 12-Сен-19 16:24 
Вот это очень странно слышать от вроде как специалистов. Понятно, когда речь идёт про детский сад и предметы там делают безопасными, хотя даже там не всегда это разумно для всего делать. Но когда специалисты голосуют за безопасные инструменты жертвуя эффективностью и что ещё хуже - удобством инструментов - это что-то совершенно за гранью и возникает вопрос в адекватности специалистов то есть специалисты ли они вообще? Ведь всегда, с начала времён люди старались делать удобные, эффективные инструменты. Все остальные параметры шли после этих двух основных. Порой параметр безопасности был важен, но только там где он был сильно важен, он учитывался. Скажем поварские ножи делают максимально острыми и это идёт в разрез с безопасностью, потому что неосторожным движением можно фалангу отрезать, а тупым ножом максимум будет порез глубокий.

В общем что-то странное с миром происходит, сбрендили.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 12-Сен-19 18:21 
Программисты режут пальцы в основном юзерам, это не так чувствуется и ощущение полноты контроля и эффективности инструмента есть.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Dee , 12-Сен-19 19:07 
Да замучались просто CVE латать. Уж сколько пишут-пишут, исправляют-исправляют, даже самые специалисты, а все равно дырка за дыркой обнаруживается, и в большинстве случаев - именно некорректная работа с памятью. Вот и решили что-то кардинально поправить, сколько можно дырками дырки латать.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Андрей , 12-Сен-19 22:19 
Так ведь же без хлеба останутся.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 14:10 
Не посмотри на синтаксис и сложность Rust там еще и на икру можно

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Илья , 12-Сен-19 22:35 
> голосуют за безопасные инструменты жертвуя эффективностью

Ясен день, деньги же считаем и данные обрабатываем.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 14:10 
Жаль что не все деньги сосчитаны и не все обработаны,
но у конкурентов будет лучше не преживайте

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Ordu , 12-Сен-19 22:47 
Эта позиция, мол если взять достаточно квалифицированных C программистов, то не будет проблем с памятью -- это очень старая позиция, и она в общем разрушена. Особо упёртые продолжают стоять на руинах и по принципу "ссы в глаза -- божья роса" талдычить одно и то же, мол ищите специалистов.

Если ты не веришь, покажи мне какую-нибудь из своих программок на C, размером от 10k строк, я потрачу выходные и найду тебе там проблемы с памятью или UB. Ну, это на тот случай, если ты думаешь что ты являешься примером C программиста, который не совершает ошибок, то я покажу тебе, что ты ошибаешься как минимум в двух случаях: тогда, когда пишешь код на C, и тогда, когда оцениваешь свои способности.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 11:54 
> Ведь всегда, с начала времён люди старались делать удобные, эффективные инструменты. Все остальные параметры шли после этих двух основных

Ну да, все удобные и, главное, эффективные инструменты уже изобрели в каменном веке. Прогресс остановился, ведь ничего не изменяется, правда? Как вы умудрились с помощью палки-копалки и скребка написать коммент на опеннете?


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено freehck , 15-Сен-19 12:19 
>> Ведь всегда, с начала времён люди старались делать удобные, эффективные инструменты. Все остальные параметры шли после этих двух основных
> Ну да, все удобные и, главное, эффективные инструменты уже изобрели в каменном
> веке. Прогресс остановился, ведь ничего не изменяется, правда? Как вы умудрились
> с помощью палки-копалки и скребка написать коммент на опеннете?

Очень просто. Он запустил Emacs и включил M-x butterfly-mode.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено freehck , 15-Сен-19 12:16 
> Но когда специалисты голосуют за безопасные инструменты жертвуя эффективностью и что ещё хуже -
> удобством инструментов - это что-то совершенно за гранью и возникает вопрос в адекватности специалистов
> то есть специалисты ли они вообще?

Не, не возникает такого вопроса. Потому что есть простое объяснение: не существует такого количества специалистов, чтобы удовлетворить всесь спрос рынка IT.

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

Так что не сбрендили мы, всё закономерно.

PS. А ещё, давайте будем честными хотя бы перед собой: даже специалисты ошибаются.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Мгер , 12-Сен-19 13:02 
почему с++ нет?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 13:14 
С++ это не нужная надстройка. Тот же раст только с другим синтаксисом. Заодно посмотри в ядре сколько строк на С++  удивись.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Мгер , 12-Сен-19 13:17 
> С++ это не нужная надстройка. Тот же раст только с другим синтаксисом.
> Заодно посмотри в ядре сколько строк на С++  удивись.

любой язык надстройка над ассемблером. так мне интересно кто лучше раст или с++


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 20:48 
Над машинным кодом, а не асмом.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 14:13 
Если ты программируешь на С++ и зарабатываешь на этом, то лучше конечно С++ для тебя.

А если тебе интересна фишечка Rust, так это хранение vtable отдельно от типа и соответсвенно экономия пары сотни байт на этом. А ну и так по мелочи всякого добавили там защиты всякой.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 16:16 
Вот только когда в Rust сделают нормальное наследование, только тогда он сможет заявлять о себе как о замене C++. А так ни разу не замена.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Forth , 14-Сен-19 20:55 
На кой оно вам сдалось? Привести пример кода можете, где прям без наследования ну никак нельзя?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Wilem , 15-Сен-19 18:59 
Зачем тебе наследование? Это мертворожденная фича, которой практически никто уже не пользуется ни в каких языках. Даже для UI. Трейты рулят. Композиция.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 13:52 
Радует участие OCaml.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено neAnonim , 12-Сен-19 17:17 
Университет же, единственное место где его возможно встретить

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 16:04 
Есть мультиклиент различных P2P-сетей на нём http://mldonkey.sourceforge.net/

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Vkni , 15-Сен-19 00:53 
Не единственное - Facebook/Jane Street и другие по-мелочи.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 14:11 
Тест по пороизводителность...
Но, где тест по нагрузке на процессор и тест по потреблению памяти?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:02 
Можно предположить они съели все ресурсы от 3 Ггц проца.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено svsd_val , 12-Сен-19 14:14 
Они не думают что 2-10% это тоже много, если 1 драйвер - это не страшно а теперь представляем ОС состоящую только из подобных драйверов и все с такими "просадками" производительности ... в итоге получим черепаху которая "нормально" будет работать разве что на дорогих компах ...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено kiwinix , 12-Сен-19 14:22 
Люблю Раст, но плюсую что просадки производительности 2% для драйвера это многовато..

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Wilem , 15-Сен-19 19:03 
Все эти исходники могут сильно различаться по степени оптимизированности. Ну и плюс это сравнение не языков, а компиляторов и рантаймов. Которые ещё разных версий бывают. Раст должен работать без оверхеда над си, если где-то проседает значит либо код неоптимальный либо в компиляторе есть что улучшить.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено НяшМяш , 12-Сен-19 14:42 
Нельзя забывать что ОС - это куча других разных вещей. Взять тот же Clear Linux - при тех же самых исходниках умудряется иногда производительность выжимать в несколько раз больше. Если ОС сама по себе не будет давать большого оверхеда, то драйвер медленнее линуксического на 2-10% не будет такой большой проблемой.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним84701 , 12-Сен-19 15:07 
>о драйвер медленнее линуксического на 2-10%
> не будет такой большой проблемой.

Оно не будет проблемой, потому что можно вместо гаданий на опеннетной гуще поглядеть в код и/или объяснения авторов:
https://github.com/ixy-languages/ixy-languages/blob/master/R...
> There are only two major differences between the idiomatic Rust and C implementations:
> Rust enforces bounds checks while the C code contains no bounds checks (arguably idiomatic style for C).
> C does not require a wrapper object for DMA buffers, it stores all necessary metadata directly in front of the packet data the same memory area as the DMA buffer.

или
https://www.net.in.tum.de/fileadmin/bibtex/publications/pape...
> We present user space drivers for the Intel ixgbe 10 Gbit/s network cards
> implemented in Rust, Go, C#, Java, OCaml, Haskell, Swift,
> JavaScript, and Python written from scratch in idiomatic style for the respective languages.
> We quantify costs and benefits of using these languages: High-level languages are

...
>  Our Rust driver executes 63% more instructions per packet but is only 4% slower than a reference C implemen-

Очевидно, что "идиоматический" стиль, особенно для критичных частей, типа дров, можно и не выдерживать.

Ну и вообще, делать выводы из разницы в пару процентов в _таком_ тесте я бы поостерегся.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Андрей , 12-Сен-19 16:03 
>  Our Rust driver executes 63% more instructions per packet but is only 4% slower than a reference C implemen-

Т.е. экономические затраты датацентра (на электричество) при переходе на такой вот драйвер вырастут.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним84701 , 12-Сен-19 16:09 
> >  Our Rust driver executes 63% more instructions per packet but is only 4% slower than a reference C implemen-
> Т.е. экономические затраты датацентра (на электричество) при переходе на такой вот драйвер вырастут.

Проценты лучше смотреть вот эти:
>> But it manages to do so with only 6% (11%) more cycles per packet for batch size 32 (batch size 8).


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 14-Сен-19 11:01 
То есть целых 10% производительности надо отдать за возможность хипстерков писать на моднявом язычке? С учётом того, что стоимость разработки на C/хрусте выйдет примерно одинаковой, а толковых программистов на первом больше - не, спасибо.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 14-Сен-19 19:06 
Когда-то давно хипстеры Керниган и Ричи переписывали UNIX с ассемблера на наколенную поделку, которая позже стала языком C. Наверно тоже сколько-то процентов производительности потеряли. Оптимизатора в компиляторе С тогда особо не было.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 14-Сен-19 19:14 
Впрочем, из-за чего там эти 10% в статье особо не разбирались, а предположили, что из-за bounds checking. Но, если что, bounds checking можно и отключить.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 15-Сен-19 10:46 
> Когда-то давно хипстеры Керниган и Ричи переписывали UNIX с ассемблера на наколенную
> поделку, которая позже стала языком C

Ещё один, не осиливший разницу между транслятором ассемблера и реальным ЯВУ.
У хруста например такой разницы нет, скорее даже хуже стало.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 15-Сен-19 10:47 
> У хруста например такой разницы нет, скорее даже хуже стало.

(разницы с сями, естественно) - просто ещё одна потуга на предмет "альтернативного" яву, на тему "а вдруг выстрелит - тогда личный профит".


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:04 
помнятся мне эти "нормально", там дорогой компа даже не спасает из-за wait for response.
Менеджеры и так софт в говно превратили ради быстрой разработки, и продажи. Теперь за саму ОСь взялись.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Dee , 12-Сен-19 19:11 
0.98*a + 0.98*b + 0.98*c + 0.98*d = 0.98*(a+b+c+d)
Если каждый компонент просядет на пару процентов, общая скорость тоже лишь на пару процентов должна.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено anonymous , 12-Сен-19 20:05 
Скорее: 0.98 * 0.98 * 0.98 * 0.98 ~= 0.92 (если эти модули используются последовательно)

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено funny.falcon , 13-Сен-19 07:05 
> Скорее: 0.98 * 0.98 * 0.98 * 0.98 ~= 0.92 (если эти
> модули используются последовательно)

Ещё правильнее: (1 + 1 + 1 + 1)/(1/0.98 + 1/0.98 + 1/0.98 + 1/0.98) = 4/(4/0.98) = 0.98


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 13:53 
Наверное так же плакали и сетовали некоторые очкарики когда юникс с ассемблера на C стали переписывать. Причем тогда у них были более весомые аргументы - все программисты вокруг были опытные матерые ассемблерщики, а первые С-компиляторы наверняка генерировали не самый оптимальный код.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено svsd_val , 14-Сен-19 20:20 
> Наверное так же плакали и сетовали некоторые очкарики когда юникс с ассемблера
> на C стали переписывать. Причем тогда у них были более весомые
> аргументы - все программисты вокруг были опытные матерые ассемблерщики, а первые
> С-компиляторы наверняка генерировали не самый оптимальный код.

Вы исходный код ядра давно видели ? Все более менее значимые участки на ассемблерных вставках..


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 15-Сен-19 10:48 
> Наверное так же плакали и сетовали некоторые очкарики когда юникс с ассемблера
> на C стали переписывать. Причем тогда у них были более весомые

Осиль уже разницу между транслятором мнемоник машкода и таки ЯВУ, потом бредь.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено мяя , 13-Сен-19 19:52 
И как часто эти драйвера вызываются? У тебя из основного:
Драйвер контроллера (накопители)
Видео драйвер
Аудио драйвер
Сетевой драйвер
Итого ~10% просадок неравномерно по времени распределённых. Остальные драйвера вызываются очень редко если нет какой-то специализации.
Вы на браузере написанном нам c++ и сайтиках тратите гораздо больше тактов чем на этих драйверах. Когда та же лиса или хром в фоне ощутимо жрут ЦП на всяком мусоре.
Обычно производительность во многом зависит от архитектуры драйвера, даже если там числодробилки надо их с умом использовать и бывает так что умный код на высокоуровневом языке оказывается производительнее кода байтоёба, банально байтоёб забил на асинхронность и синхронно долбит вызовы просирая кучу времени на эту синхронность. Так что сравнивая языки надо учитывать ещё и лёгкость написания умного кода. Когда язык требует большой осторожности то неминуемо он сожрёт время на это, когда как это время можно было потратить на более продуманный код.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 14-Сен-19 11:02 
Для каждой машины, которая отдаёт тебе статический например видеоконтентик, который ты смотришь в том самом браузере, этот самый драйвер чуть ли не основа основ.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено svsd_val , 14-Сен-19 20:18 
>[оверквотинг удален]
> чем на этих драйверах. Когда та же лиса или хром в
> фоне ощутимо жрут ЦП на всяком мусоре.
> Обычно производительность во многом зависит от архитектуры драйвера, даже если там числодробилки
> надо их с умом использовать и бывает так что умный код
> на высокоуровневом языке оказывается производительнее кода байтоёба, банально байтоёб
> забил на асинхронность и синхронно долбит вызовы просирая кучу времени на
> эту синхронность. Так что сравнивая языки надо учитывать ещё и лёгкость
> написания умного кода. Когда язык требует большой осторожности то неминуемо он
> сожрёт время на это, когда как это время можно было потратить
> на более продуманный код.

И так начнём, представьте что Вы используете видео драйвер который написан на этом деле со своими просадками в производительности и отзывчивости, используется он как ни странно 99% рабочего времени пользователя... Конечно если Вы не юзаете сервер без видео вывода. Получаем что производительность и отзывчивость системы в целом да и в мультимедиа упадёт не на 10%. Так как системе и приложению ещё нужно использовать винт, сеть, звук, устройства ввода, каждый драйвер со случайной просадкой производительности и отзывчивости... Будете играть и со скоростью эмуляторов плоек и задержками на каждом вводе ...

А вот про правильный код, тут вопрос открыт, у всех он свой... у проприетарщиков работает на костылях - правильный код.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Андрей , 12-Сен-19 16:00 
> При написании кода основное внимание уделялось достижению максимально возможной производительности с учётом особенностей каждого языка.

У авторов действительно есть хотя бы несколько лет профессионального использования каждого из этих языков. Профессионального в смысле при написании высокопроизводитнльного софта (Google, Netflix,..).


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Anonn , 13-Сен-19 04:38 
Было бы гораздо интереснее, если бы был объявлен открытый конкурс на более эффективную реализацию для каждого из языков. Я думаю, что результаты были бы достаточно другими. Те же сорцы на го — там есть что оптимизировать…

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено реверсер , 12-Сен-19 16:56 
ассемблера не ?!?
а было бы смешно увидеть графиках даже асм который бы сливал русту)))
намекая на явно заказные тесты от мозиллы

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:02 
Ассемблер далеко не всегда быстрее.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 12-Сен-19 18:51 
в большинстве прямые инструкции будут куда быстрее того же си-шного кода. единственный вариант, что драйвер на сях или любом языке будет собран с особым упором на поддержку всех инструкций процессора, а ассемблерный код будет пользоваться основным множеством инструкций имеющихся во всех процах(моделях). но даже так при сборке такого драйвера будет несколько лишних инструкций из за особенностей языка. но интерпретируемые языки? и специально ограниченные самой медленной конфигурацией? правда попахивает заказом))

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 23:02 
> Ассемблер далеко не всегда быстрее.

Ну если уровень теоретической подготовки низок, если нет знаний о процессе оптимизации, то есть если писать на асме в стиле модного смузихлеба - то конечно не всегда. Во всех остальных случаях - всегда.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено forum reader , 12-Сен-19 17:12 
Оригинальный способ проводить сравнение компиляторов с интерпретаторами.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 17:20 
на Lua было бы быстрее

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 21:52 
Если сравнивать с питоном и js

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 14:15 
Сравнивали Lua на какие-то сотые проценты лучше Python,
с JavaScript в 9 - 15 раз быстрее ...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 16:06 
С JS корректно сравнивать LuaJIT.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Griggorii , 12-Сен-19 17:32 
https://github.com/Griggorii/linux-image-5.2.11_X86_64_zstd_...
Вне рабочая просьба у кого systemd не версии 240 , а выше проверить это ядро и написать работает или нет , у меня в ходе разработки возникли опасения что род более новые системд нужно конфигурировать по другому. Интернет ваифая вот что надо что бы работал этот подпункт если исчез дайте знать. Ядро там v11 деб пакетами ниже скачайте.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 18:15 
Не понимаю, как свифт может работать со скоростью жс? Он же компилируемый. И эппл его продвигал для приложений и прочего. Получается, что они должны быть +- как на электроне?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Dee , 12-Сен-19 19:13 
Они там в pdf-ке с анализом пишут:

Swift increments a reference counter for each object passed into a function and decreases it when leaving the function. This is done for every single packet as they are wrapped in Swift-native wrappers for bounds checks. There is no good way to disable this behavior for the wrapper objects while maintaining an idiomatic API for applications using the driver. A total of 76% of the CPU time is spent incrementing and decrementing reference counters. This is the only language runtime evaluated here that incurs a large cost even for objects that are never free’d.

76 процентов, Карл!

Тормоз этот ваш свифт.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Dnina , 12-Сен-19 21:13 
Что-то полная жесть. Точно не помню, но по-моему видел намёки на то, что чуть ли не бэкенд писать на нём можно. Но кому оно надо в таком виде.
Интересно, Objective-C не имеет такого косяка? Если нет, то переход на более медленный язык выглядит так себе. Разве что для смузихлёбов.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Optional , 12-Сен-19 22:25 
в swift есть struct и class, struct - это тип-значение, а class - это ссылочный тип, возможно они классы использовали вместо структур?
и вроде если структуры использовать, должно быть быстрее?
а с другой стороны, может сама реализация ARC нелучшая, с какими-то недостатками?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Ананд , 13-Сен-19 19:14 
https://github.com/ixy-languages/ixy.swift/tree/master/ixy/S...

Они сделали все как class. Если поменять на struct летать будет.

Class: reference counting + lock for multithreading.
Struct: no reference counting, no safe multithreading(should be immutable)


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено grsec , 12-Сен-19 18:23 
Пистон провалился, я не удивлен. Этот монстр скоро вообще забудет, что такое скорость о обрастет жиром.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Led , 12-Сен-19 20:55 
Зато он гламурный, а ты просто завидуешь.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 13-Сен-19 00:50 
народ в угаре от этого теста и не может остановиться. ржет и падает. у нас не 1 апреля случаем? вроде нет. тогда тут либо тестеры дауны, либо они недоученные прогеры. и то и то не очень солидно)) и правда почему плюсы не использовали? полагаю было бы один в один с Си.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Наноним , 13-Сен-19 03:57 
"ржём, падаем, в угаре, 1 апреля, дауны, недоученные"

Всё, что нужно знать об уровне дискуссий фанатов "языка, доступного каждому".


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 13-Сен-19 17:02 
знаешь если питон применять с умом он очень даже хороший язык. ну если пихать его  туда где солнце не светит , то да)) ресурсоемкими задачами должны заниматься компилируемые языки. и если тестеры даже этого не понимали, то извини кроме как недоучек их не назвать.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено red75prim , 13-Сен-19 17:34 
> этого не понимали, то извини кроме как недоучек их не назвать.

Питон там как представитель интерпретируемых языков без JIT. Поэтому они ни PyPy не использовали, ни оптимизацией особо не занимались - и так ясно, что на этой задаче он сольёт.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Vkni , 15-Сен-19 02:46 
> знаешь если питон применять с умом он очень даже хороший язык. ну если пихать его  туда где солнце не светит

У Питона есть некоторая неочевидность семантики. А главное - фоннаты Питона пихают его вообще везде. Когда я рассказываю, что не надо на нём писать сложную бизнес логику с большим количеством ветвлений (при этом кол-во тестов комбинаторно увеличивается), на меня смотрят с вытаращенными глазами. В лучшем случае поддакивают из вежливости.

А про то, что тесты, включая юнит-тесты, это, вообще-то некоторый код, который приходится поддерживать - за гранью понимания. Можете проверить сами - спросите, какие есть минусы у юнит-тестов у коллег. Вот и выясните, кто там "программист минус инженер".


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Vkni , 15-Сен-19 02:49 
Это язык для прототипирования нетребовательных к производительности интерпретатора программ (всё скоростное должно быть вынесено в С или другие языки).

И если не заниматься закручиванием гвоздей отвёрткой, то всё будет нормально.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 19:30 
Годный убедительный тест.
Но однозначно не хватает FPC. Есть подозрения, что, внезапно, он асимптотически сходился бы с кодом на Раст.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Retrosharer , 12-Сен-19 22:03 
Да, было бы не плохо в такой тест включить Free Pascal, который развивается семимильными шагами. Что удивительно.

Не пришлось бы отсылать к вопросу скорости Паскаля на ресурсы вроде такого: https://www.quora.com/Is-Pascal-faster-than-C?share=1
Было бы более объективно.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Ordu , 12-Сен-19 23:21 
Напиши. 1000 строк кода при возможности подглядывать в C'шный код -- это при худшем раскладе займёт выходные за месяц. Если писать вечерами и на выходных, можно управится за неделю.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 12-Сен-19 21:30 
Бедный питон :)

И да - не хватает варианта C++


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено all_glory_to_the_hypnotoad , 12-Сен-19 22:39 
> Дополнительно были проведены тесты на время задержки, которые показывали эффективность буферизации и влияние сборщика мусора.

Они хотя бы погоняли драйвер в рабочем состоянии несколько часов прежде чем снимать показания? А то на прогреве любое гогно может рисовать неплохие числа .. кроме питона.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено vitalif , 12-Сен-19 23:44 
Блин, не могу, придётся потестить

virtio оно говорите поддерживает...


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 09:18 
Why C and not a more reasonable language?

It's the lowest common denominator that everyone should be able to understand -- this is for educational purposes only. I've taken care to keep the code simple and understandable.

When should I use this?
To understand how a NIC works and to understand how a framework like DPDK or Snabb works.


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


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено InuYasha , 13-Сен-19 11:42 
Всех с Днём Программиста! (^_^)/

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Анатоним , 13-Сен-19 15:29 
Python красава. Даже на это го@#о голову не поднял, посмотреть че там его за хвост тягают. Это не царское дело.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 13-Сен-19 17:58 
На JavaScript?!.
Мсье знает толк...

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним qwerty_qwerty1 , 13-Сен-19 19:31 
Да блин, Rust, GO вся проблема в руках!!!
В результате что на Rust что GO будут использовать unsafe и получится таже фигня.
    

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено JL2001 , 13-Сен-19 21:04 
я бы хотел такой же драйвер на Dlang увидеть в вариантах без GC и с ним

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 14-Сен-19 03:51 
те же плюсы получатся))насколько помню даже один из разработчиков плюсов у них язык развивает. так что думаю получится тоже самое в чуть более удобной обертке. и то хорошо. а скорость по идее не должна уступать С. хотя ничего не скажу , я его только мельком глянул.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено JL2001 , 14-Сен-19 10:12 
> те же плюсы получатся))насколько помню даже один из разработчиков плюсов у них
> язык развивает. так что думаю получится тоже самое в чуть более
> удобной обертке. и то хорошо. а скорость по идее не должна
> уступать С. хотя ничего не скажу , я его только мельком
> глянул.

вот тут внезапно c# и java оказались сильно разными, а c и rust сильно одинаковыми
хотелось бы результатов тестов


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 14-Сен-19 10:50 
Попытку захайпать хруст как язык в т.ч. для низкоуровневых приложений оценил, но спасибо, нет. Костыль на костыле и костылём погоняет.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 14-Сен-19 10:59 
Я уж молчу про то, что код на сях в оx*иллиард раз читабельнее и очевиднее. Пока что потуги придумать что-то лучше сишного синтаксиса около которого вертятся всегда востребованные C,C,Java,PHP,etc. успехом не увенчиваются, увы.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 15:56 
C++ в тестах отсутствует. Нечестно, всё-таки, широко известный ЯП.
Удивило оставание OCaml, который в машинные коды, от Java, которая в JIT и в виртуальной машине.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено all_glory_to_the_hypnotoad , 14-Сен-19 16:06 
OCaml показал себя лучше явы: пропускная способность на уровне, а задержки значительно меньше.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 14-Сен-19 16:11 
По первому графику совпадение тоько при 64-х пакетах, в других точках отставание.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено all_glory_to_the_hypnotoad , 14-Сен-19 19:17 
Разница незначительная.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Vkni , 14-Сен-19 18:38 
Я подозреваю, что Ocaml можно сильно разогнать, убрав аллокации - народ в Jane Street пишет low latency код на Ocaml для спекуляций. Но это не идиоматично.

Второй момент: JIT - это же и есть машинные коды. Just-In-Time compile. То есть, на hot path и Ocaml, и Java скомпилированы одинаково.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 15-Сен-19 00:40 
его к сожалению мало кто хорошо знает)) хотя пишут много кто, но он разросся в такого монстра, что страшно. чистый Си выглядит куда проще)) хотя у плюсов есть плюсы))) ахаха хорошо загнул.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Murz , 14-Сен-19 18:30 
А где мои любимые php и vba?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено аноним3 , 15-Сен-19 00:42 
ты их через браузер погонишь? хотя погоди, запросы будут через внутренний сервак отправляться? помилуй железо оно и так страдает))

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено q , 15-Сен-19 08:33 
питон через солнце запускали что-ли?

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Онаним , 15-Сен-19 10:52 
> питон через солнце запускали что-ли?

Через ж*... да, через солнце.
Не, кроме шуток, его вроде компилировали, если я их текст правильно понял.


"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Алексей Михайлович , 17-Сен-19 23:03 
Не-а. Как раз-таки в интерпретаторе его гоняли.

"Сравнение производительности сетевого драйвера в вариантах н..."
Отправлено Аноним , 17-Сен-19 12:43 
> Сетевой драйвер работает в пространстве пользователя

Хрень какая-то. В пространстве пользователя ничего с картой сделать невозможно, ни сконфигурировать, ни обслужить.