@immelnikoff
Изучаю БД

Какая ОС самая быстрая для работы торгового робота на С++?

Скажу сразу, что даже 5% к скорости исполнения кода имеет значение.
Допустим, у меня имеется торговый робот (10% кода на python, 10% кода на java и 80% кода на C++). Мне нужно выбрать ОС с точки зрения максимизации скорости работы моего робота. Ещё важна такая характеристика, как стабильность скорости работы, без фризов.
Знаю, что разница в производительности Windows 10 и Ubuntu 20.04 составляет примерно 15% (тыц). А значит, не все ОС одинаково быстры.
На каких ОС работают торговые роботы топовых алгоритмических фондов?
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 6
mayton2019
@mayton2019
Bigdata Engineer
Мне кажется что ты не тем занят. Нужно очень сильно постараться чтобы ОС стала узким местом в бизнес логике.

Собери данные профилирования.
Ответ написан
Комментировать
Adamos
@Adamos
По одной формулировке перед "тыц" уверенно предположил - Фороникс. Ага, он самый...

Если эти 10% + 10% + 80% кода - ваши, и вы задаете такие вопросы - скорее всего, его вдумчивое переписывание и профилирование принесет куда больше пользы, чем перебор "самых быстрых ОС".
Даже если на это будет потрачено столько же времени.
Даже если этим будете заниматься вы же...
И даже если быстрее он работать не станет ;)
Ответ написан
Комментировать
xez
@xez
TL Junior Roo
Почитайте о «операционных системах реального времени»
Ответ написан
@Drno
Линукс. Наверно дебиан или редхат. Банально из-за стабильности
Он предназнает лопатить годами без перезагрузки

Ну или freebsd
Но явно не винда
Ответ написан
vabka
@vabka
Токсичный шарпист
минутка лирики с долей душноты

Если тебе на столько важна производительность, то почему ты в принципе пишешь под какую-то ОС, когда можно непосредственно работать на железе?

Почему бы тогда не сделать asic для алготиейдинга?


Если более конкретно, то ответ будет "зависит".
Не всегда то решение, которое использует "топовый алготрейдер" будет применимо для твоего случая.
1. Оно может быть доработано.
Например может быть пересобрано ядро и использованы самописные сетевые драйвера, которые и дают весь выигрыш.

2. Оно может быть не применимо для тебя. Например он может использовать SuperTurboOS, но твоя имеющаяся программа ппинципиально с ней не совместима из-за отсутствия каких-то нужных системных компонентов.

Так что решения для тебя будет - делать бенчмарки, и профилировать код, чтобы найти действительно узкие места, которые можно пофиксить гораздо легче, и которые дадут больший выигрыш.
А потом может и правда asic для алготиейдинга сделаешь ;)
Ответ написан
Комментировать
@rPman
К сожалению программы можно написать так что при смене операционной системы их скорость работы может значительно измениться, и не факт что linux окажется быстрее, особенно это касается IPC (обмен приложений данными, в зависимости от способа), чаще всего это является следствием плохой архитектуры приложения, так как в случае правильной ее реализации скорость не будет зависеть от выбора ОС.

Отличный пример - в windows значительно медленнее работа с файлами и базами данных, но я видел ситуацию когда частые обновления с fflush укладывали на linux сервере дисковую подсистему 'на лопатки' если файл лежит на nfs в сети на соседней машине но тот же код приемлемо работал локлально тоже на linux.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы