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

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

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

24 ответов

35 просмотров

У них разные задачи есть, и далеко не везде супер-рилтайм требуется. Там, где требуется, используются 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
я не вижу ничего хорошего ни академически, ни тем ...

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

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта