Архив за месяц: Декабрь 2018

Linux для биржевой торговли

Операционная система играет важнейшую роль в работе торговой системы. Поэтому выбор ОС является главным этапом создания биржевой торговой системы с приемлимым уровнем latency. Исторически так сложилось, что теперь в качестве ОС чаще всего выбирают Linux.

Linux — это бесплатное ядро операционной системы общего назначения. ОС, построенная на основе ядра Linux, способна работать на обычных настольных компьютерах, на многопроцессорных серверах, лаптопах, планшетах, телефонах и встроенных устройствах. Поэтому для работы в задачах именно биржевой торговли, где особо высоки требования к low-latency, в ОС необходимо провести тонкую настройку.

Читать далее

Все опции JVM

Чтобы посмотреть, какие опции поддерживает ваша версия Java, запускаем:

java -showversion -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal

и получаем на экране полный список:

Читать далее

Жил был программист Richard Rose

Жил был программист Richard Rose.

После работы на ведущие банки мира (Goldman Sachs, Morgan Stanley, Bank of America, UBS и прочее), он решил, что настало время уйти на вольные хлеба и реализовать свои идеи и наработки в коммерческом продукте. План состоял в том, чтобы создать движок, совмещавший OMS и соединение с рынком, который бы способен был перемещать сообщения с задержкой в микросекунды и даже меньше. Движок был написан на Java.

Читать далее

Java 11 и Epsilon GC

В Java 11 представлен новый экспериментальный сборщик мусора Epsilon GC. Несмотря на название, он не собирает мусор, а только аллоцирует память и не освобождает её. Соответственно, по исчерпании свободной памяти, возможен креш с OutOfMemory. Для чего такой сборшик мусора может пригодиться?

Читать далее

Что такое latency? Low latency? Ultra-low latency?

Для понимания понятия latency возьмем простой пример. Представьте себе некий «черный ящик» с одним входом и одним выходом. Вы подаете сигнал на вход и ожидаете появление сигнала на выходе. При проведении экспериментов вы замечаете, что при подаче сигнала на вход сигнал на выходе появляется через 1 секунду. Причем это происходит постоянно с отклонением +/- 10 миллисекунд. То есть выдача сигнала на выходе происходит с определенной задержкой. Это и есть latency — время задержки.

Читать далее