LINUX.ORG.RU

Какие есть живые opensource проекты где экономят наносекунды в юзерспейсе?

 ,


1

1

Ну ещё не embeded что бы.

Пока набралось:

  • kernel bypass dpdk, pf_ring, netmap
  • Кодеки ffmpeg
  • Возможно, компиляторы для c и c++
  • Программное ускорение графики mesa
  • Реализации green threads и прочие способы отжать управление у системного планировщика (реализации LWKT, NPTL)


Последнее исправление: onhydro (всего исправлений: 3)

Ответ на: комментарий от anonymous

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

onhydro
() автор топика
Ответ на: комментарий от onhydro

А точно? Там вроде всё в дисковое i/o упирается и пока ждёшь на чём то в духе select, по идее можно кучу дел провернуть?

По крайней мере с C++ есть чего поделать во время чтения. Например шаблоны погенерировать, код поопмимизировать, constant propagation посчитать.

О, кстати, можно еще посмотреть в сторону оптимизации и, собственно, генерации булее оптимального кода

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от beastie

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

anonymous
()
Ответ на: комментарий от tailgunner

Ты просто не специалист в пирформанс кампутинк.

anonymous
()
Ответ на: комментарий от anonymous

Так там программная эмуляция для всех отсутствующих в драйвере фичь. Они часто оптимизируют своё дерьмо, но у всего есть предел.

anonymous
()
Ответ на: комментарий от Deleted

Твоя задача - оптимизация алгоритмов, т.е. do less

Если в сортировке массива quick sort использовать не до самых маленьких размеров подмассивов, а на определённом этапе перейти на сортировку вставками, работы выполняется больше, но общее время становится меньше (на текущем распространённом железе). Так что не всё так просто.

i-rinat ★★★★★
()
Ответ на: комментарий от onhydro

А ты участник или сочувствующий?

Сочувствующий. То есть я им пользуюсь (как и DPDK) но внутрь заглядываю нечасто.

Есть у них какие то бенчмарки и инструкции по профилированию?

С высокоскоростными сетевыми железками не все так просто. Они достаточно разные, конечная производительность зависит от кучи факторов (от собственно железки, CPU, памяти, способа получения данных из железки, способа обработки/размазывания по вычислительным ядрам и т.п.).

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

Плюс собственно разработка немного отличается от традиционной. Даже какие-нибудь атомарные операции (которые считаются достаточно быстрыми) могут нагнуть производительность. В общем, своя атмосфера.

Deleted
()
Ответ на: комментарий от Deleted

Странно, я всегда думал, что когда речь о лэйтенси на порядки меньше кванта cpu профилируют скорее инструментально. Но я не настоящий системный разработчик.

onhydro
() автор топика
Ответ на: комментарий от anonymous

Эээ. Если он хочет быть умнее компилятора - пусть пишет ассемблерные вставки для распространённых архитектур x86, и делает разные билды. Конкретно Instruction Scheduling выполняется компилятором, поэтому не вижу расхождения со своими словами.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.