Re[34]: dotnet vs java 2016-2020
От: · Великобритания  
Дата: 14.10.16 10:10
Оценка: :)
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, ·, Вы писали:


V>>>·>LL-тред не блокируется, тем более на IO, он крутит busy spin пока отсутствуют данные во входящем сетевом буфере. Да, процессор жжот.

V>>>На серверной стороне это невозможно в принципе. Вот у тебя тысяча клиентов висит, а ядер всего 32. Твои действия?
V>·>А сетевых карт сколько? Одна, правильно? Сколько значит сетевых буферов?
V>Сетевых буферов сколько угодно.
V>Тут такая херня, что IP-протоколы как раз ругают за канальный уровень внутри канального уровня (того же Ethernet).
V>Но это к делу не относится, инфа по принципам работы ethernet-карточек открыта, можно на досуге взглянуть.
Пикапить можно трафик (pcap).

V>·>Да и тысячу клиентов можно по дюжине шлюзов разбалансить.

V>Т.е., передать инфу на другое ядро внутри одной системы нельзя, а на другой шлюз можно?
Я рассказываю о своём опыте. Бывают разные клиенты. Так называемые market makers — их немного, десятки (top investment banks) — для них LL — самое важное. У них персональные шлюзы и прочие железки.
Остальные брокеры — для них можно и IO подождать, но от них, как правило, и трафика меньше.
А ещё можно тонко настраивать операционку, чтобы она хорошо себя вела

V>·>Заказы всё равно надо последовательно обрабатывать, правила биржи такие.

V>Это ты уже вилять изволишь.
V>Ну ОК, твоё мнение понятно, но оно курьёзное и я бы тебе посоветовал ВНИМАТЕЛЬНО пройтись по этой теме, чтобы не рожать курьёзы в будущем.
Я рассказал о работе EV. Он _обязан_ обрабатывать все ордера в порядке очереди. Это, кстати, отличительная особенность биржи от веб-сервера. Веб-сервер получает 100500 запросов и может каждый обработать параллельно и практически независимо. На бирже 90% трафика ломится в один единственный EUR/USD биржевой стакан.
Соответственно эти FIX-шлюзы смотрят во внешний мир и перекладывают запросы от клиентов в один поток ордеров, который потом строго последовательно обрабатывается LL-ядром.

Кстати, я почитал твои ссылки с графиками. Не понял что именно ты хотел доказать. Это что-ли?
The Java based FIX engine closely matched the native C++ code
Вполне ожидаемый результат.
Или что ваша наивная имплементация pure java с развесистыми объектами всего на порядок отстаёт от вылизанного native? А на pure c# вообще никто не осилил fix engine написать? По-моему, результат отлично доказывающий мою позицию.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.