The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Сравнение производительности сетевого драйвера в вариантах н..., opennews (?), 12-Сен-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


300. "Сравнение производительности сетевого драйвера в вариантах н..."  +/
Сообщение от Vkni (ok), 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 расставить, опять-таки, копирование буфера.

Ответить | Правка | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру