169 похожих чатов

Почему компания вроде jane street использует язык с gc вроде

ocaml? Разве такой финтех не юзает verilog c++ , и прочую суету

24 ответов

38 просмотров

У них разные задачи есть, и далеко не везде супер-рилтайм требуется. Там, где требуется, используются FPGA, например (в каких-то из подобных задач). А где не требуется — OCaml (почему бы и нет).

К слову, современные GC всё более для рилтайма пригодны. State of the art сдвигается. Уже не удивишь гарантией задержки сборки в < 1ms (например, её дают специальные рантаймы для Java; или даже Golang).

Во-первых, high-frequency trading это их не основная специализация. Они маркетмейкеры и берут объемами и играют вдолгую и на рисках. Во-вторых, в HFT они всё-таки тоже умеют https://github.com/janestreet/hardcaml

Они не hft трейдеры, они хедж-фонд менеджеры

Ivan
Во-первых, high-frequency trading это их не основн...

а ещё меня извращенцем называли...

Dmitry Ponyatov
а ещё меня извращенцем называли...

Почему? Сейчас мода на высокоуровневые языки в проектировании чипов.

Dmitry Ponyatov
а ещё меня извращенцем называли...

Ну Chisel довольно популярный а это скала дсл по сути

Потаённый Братец
Ну Chisel довольно популярный а это скала дсл по с...

Сейчас ещё пилят circt, с поддержкой FIRRTL как раз из того самого Chisel

The Zazaeil
каким образом такая гарантия получается?

Да, гарантия — слишком громкое слово. Это не hard-realtime ведь. Да и невозможно такое на обычных операционных системах. Но это best-effort с хорошими статистическими характеристиками и низким на практике tail-latency. Что до способов реализации — они разнообразные. Например, Go принёс в жертву уплотнение кучи — объекты не перемещаются там. И это снижает throughput и портит локальность, но и уменьшает задержки. А ZGC в Java вообще "pauseless" (типа), т.к. мусор собирают треды фоновые.

SystemEng- Автор вопроса
Максим Муратов
Да, гарантия — слишком громкое слово. Это не hard-...

как понять hard-realtime?) что под этим подразумевается ? Сори за вопросы, просто я джун на гошки.

SystemEng
как понять hard-realtime?) что под этим подразумев...

Это когда гарантии нужны. Иначе человек умрёт, или реактор взорвётся, например. А soft-realtime — статистическое.

SystemEng
как понять hard-realtime?) что под этим подразумев...

https://stackoverflow.com/questions/17308956/differences-between-hard-real-time-soft-real-time-and-firm-real-time

Максим Муратов
Это когда гарантии нужны. Иначе человек умрёт, или...

Hard-realtime означает всеволишь константные кванты времени. Как правило ниже определенного (тем не менее произвольного) порога. То есть если наш системный таймер гарантированно производит импульс в Х миллисекунд и все обработчики таймера гарантированно отрабатывают до следующего импульса — это хард рил-тайм, даже при Х исчисляемого десятками, а то и сотнями. Противная ситуация должна приводить к системной ошибке. Соответственно «мягкий пиал-тайм» — это когда в некотрых ситуациях импульс таймера не случился и/или какие-то обработчики не обработались до следующего импульса. Например по причине блокировки или stop-the-world GC. В таких системах упущенный такт не приводит к системной ошибке Soft/hard рилтайм не имеет общего с отзывчивостью системы и тем более с гарантиями

The Zazaeil
каким образом такая гарантия получается?

запуском gc в отдельном потоке РТОС , или квитированием времени работы (для игр актуально) ?

Dmitry Ponyatov
запуском gc в отдельном потоке РТОС , или квитиров...

так а как гарантировать, что GC за отведенный квант времени успеет собрать необходимое количество мусора для следующей аллокации?

The Zazaeil
так а как гарантировать, что GC за отведенный кван...

никак, максимум аварийный callback задаче пришлёт "ты обосралась в кучу, врубай тормоза и суши вёсла"

The Zazaeil
какая восхитительная гарантия

Нормальная гарантия. Гарантия длительности пауз есть? Есть. Гарантий отсутствия OOM при определенном GC pressure никто не давал. Трейдофы же всегда есть.

Потаённый Братец
Нормальная гарантия. Гарантия длительности пауз ес...

я не вижу ничего хорошего ни академически, ни тем более практически в том, чтобы сводить якобы к out of memory ситуацию, когда memory-то есть, просто за отведенный квант времени GC не успел ее вернуть в достаточном количестве.

The Zazaeil
я не вижу ничего хорошего ни академически, ни тем ...

Не почему есть, пока есть оно будет работать

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта