Re[10]: Куда уходят умирать C++ программисты?
От: Олег К.  
Дата: 13.06.12 03:21
Оценка:
ОК>>Успех торговли это еще не только возможность первым купить, но еще и сама стратегия. Только закладываются почему-то на первое.

J>Просто этим обычно разные люди занимаются.


Так и я об этом же. Одна команда (технари) переписывает Джаву (возможно даже и успешно), другая команда пишет хреновые стратегии и некачественный код (кванты) и нивелирует достижения первой команды.
Re[14]: Куда уходят умирать C++ программисты?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 13.06.12 03:21
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Ну начинается. Простой, лаконичный код который можно понять сходу и/или пройтись отладчиком если надо. Так чтобы плеваться не приходилось. На счет 2). Вместо #define MY_CONST 7 пишешь const int MyConst = 7; или енумы, вместо #define SQUARE(x) ((x) * (x)) пишешь соответсвенно инлайн функцию, на счет темплейтов — пользуешься стандартными контейнерами и смарт пойнтерами и очень редко когда сам пишешь темплейтные функции и классы. Большего и не нужно.


Около 5 лет назад (с тех пор я студией не пользовался) она в легкую разбирала куда более сложные конструкции чем ты привел. Тут дело не в студии, lpc просто за уши какие-то нелепые причины притягивает. Полагаю, именно они были использованы для обоснования описанного выше пятиколесного велосипеда с изменяемой геометрией крыла и воздушной подушкой.
Re[9]: Куда уходят умирать C++ программисты?
От: Олег К.  
Дата: 13.06.12 03:27
Оценка:
ОК>>У вас память что ли бесконечна?

M>Кстати, это вариант. Тогда аллокатор будет реально быстрым


Тогда аллокатора вообще как такового не надо. Создавай свой объект в конце большого массива байт и не думай чтобы убирать ненужные объекты.

ОК>>Давай уж, не говори про курс молодого бойца и два-три месяца. Расскажи на пальцах в течении пяти минут подробнее. А то у меня до сих пор непонимание как можно преаллокейтить все объекты когда ты не знаешь даже в рантайме сколько их у тебя еще будет да и каких типов.


M>Чую, что все 'объекты' у них — это одноуровневые структуры с методами, сильно напоминающими ByteBuffer: getInt(offset), getByte(offset) и т.д.

M>Но вот как они их вычищают???

Все равно не понимаю. Наверное, все-таки, они написали свой аллокатор но меня до сих пор заводит в тупик фраза что они все свои объекты преаллокейтают.
Re[11]: Куда уходят умирать C++ программисты?
От: jazzer Россия Skype: enerjazzer
Дата: 13.06.12 03:30
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>>>Успех торговли это еще не только возможность первым купить, но еще и сама стратегия. Только закладываются почему-то на первое.


J>>Просто этим обычно разные люди занимаются.


ОК>Так и я об этом же. Одна команда (технари) переписывает Джаву (возможно даже и успешно), другая команда пишет хреновые стратегии и некачественный код (кванты) и нивелирует достижения первой команды.


Угу. Именно поэтому самые хитрые технари , которых задрало писать бесконечные одинаковые лайн- и фид-хендлеры, уходят в ту самую "другую" команду
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[10]: Куда уходят умирать C++ программисты?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 13.06.12 03:30
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Все равно не понимаю. Наверное, все-таки, они написали свой аллокатор но меня до сих пор заводит в тупик фраза что они все свои объекты преаллокейтают.


Почему в тупик заводит? Типичный Си/Си++ подход, когда нужно обеспечить быструю работу с памятью. Выделяешь большой кусок памяти и последовательно отдаешь его по-кусочкам нуждающимся, назад ничего не возвращаешь. Когда все запросившие память из куска "померли" — возвращаешься к началу.
Re[15]: Куда уходят умирать C++ программисты?
От: Олег К.  
Дата: 13.06.12 03:34
Оценка:
ОК>>Ну начинается. Простой, лаконичный код который можно понять сходу и/или пройтись отладчиком если надо. Так чтобы плеваться не приходилось. На счет 2). Вместо #define MY_CONST 7 пишешь const int MyConst = 7; или енумы, вместо #define SQUARE(x) ((x) * (x)) пишешь соответсвенно инлайн функцию, на счет темплейтов — пользуешься стандартными контейнерами и смарт пойнтерами и очень редко когда сам пишешь темплейтные функции и классы. Большего и не нужно.

KP>Около 5 лет назад (с тех пор я студией не пользовался) она в легкую разбирала куда более сложные конструкции чем ты привел. Тут дело не в студии, lpc просто за уши какие-то нелепые причины притягивает. Полагаю, именно они были использованы для обоснования описанного выше пятиколесного велосипеда с изменяемой геометрией крыла и воздушной подушкой.


Тут речь не об этом. Допустим студия помогает тебе "пройтись" по жутчайшим макросам и темплейтам. Значит ли это что надо писать такую жуть (не сомневаюсь что ты понимаешь о чем я) только потому что тебе помогает студия? Разумеется нет. Я, вот, вообще не понимаю как любители паттернов и Александреску умудряются их впихнуть куда ни попадя.
Re[16]: Куда уходят умирать C++ программисты?
От: SkyDance Земля  
Дата: 13.06.12 03:39
Оценка:
ОК>Тут речь не об этом. Допустим студия помогает тебе "пройтись" по жутчайшим макросам и темплейтам. Значит ли это что надо писать такую жуть (не сомневаюсь что ты понимаешь о чем я) только потому что тебе помогает студия? Разумеется нет. Я, вот, вообще не понимаю как любители паттернов и Александреску умудряются их впихнуть куда ни попадя.

Обычно "паттерны Александреску" (С) и всякие там low-latency не пересекаются. Просто в силу ортогональности назначения. Хотя бы просто потому, что "все эти ваши паттерны" — попытка из С++ сделать язык чуть более высокого уровня. Попытка, надо сказать, бестолковая, поскольку лучше сразу взять язык упомянутого уровня.
Re[11]: Куда уходят умирать C++ программисты?
От: Олег К.  
Дата: 13.06.12 03:40
Оценка:
ОК>>Все равно не понимаю. Наверное, все-таки, они написали свой аллокатор но меня до сих пор заводит в тупик фраза что они все свои объекты преаллокейтают.

KP>Почему в тупик заводит? Типичный Си/Си++ подход, когда нужно обеспечить быструю работу с памятью. Выделяешь большой кусок памяти и последовательно отдаешь его по-кусочкам нуждающимся, назад ничего не возвращаешь. Когда все запросившие память из куска "померли" — возвращаешься к началу.


Ну так ты отдаешь эти куски по мере надобности, т.е. это самый настоящий хоть и примитивный аллокатор. Я же его фразу понимаю (возможно неправильно) что они при стартапе создают все объекты которые им понадобятся в будущем. Перечитай его начальный пост.
Re[17]: Куда уходят умирать C++ программисты?
От: Олег К.  
Дата: 13.06.12 03:44
Оценка:
ОК>>Тут речь не об этом. Допустим студия помогает тебе "пройтись" по жутчайшим макросам и темплейтам. Значит ли это что надо писать такую жуть (не сомневаюсь что ты понимаешь о чем я) только потому что тебе помогает студия? Разумеется нет. Я, вот, вообще не понимаю как любители паттернов и Александреску умудряются их впихнуть куда ни попадя.

SD>Обычно "паттерны Александреску" (С) и всякие там low-latency не пересекаются. Просто в силу ортогональности назначения. Хотя бы просто потому, что "все эти ваши паттерны" — попытка из С++ сделать язык чуть более высокого уровня. Попытка, надо сказать, бестолковая, поскольку лучше сразу взять язык упомянутого уровня.


В теории не пересекаются. На практике у каждого свое видение как надо писать код и паттерны у некоторых товарищей играют далеко не последнюю роль.
Re[12]: Куда уходят умирать C++ программисты?
От: Олег К.  
Дата: 13.06.12 03:48
Оценка:
ОК>>>>Успех торговли это еще не только возможность первым купить, но еще и сама стратегия. Только закладываются почему-то на первое.

J>>>Просто этим обычно разные люди занимаются.


ОК>>Так и я об этом же. Одна команда (технари) переписывает Джаву (возможно даже и успешно), другая команда пишет хреновые стратегии и некачественный код (кванты) и нивелирует достижения первой команды.


J>Угу. Именно поэтому самые хитрые технари , которых задрало писать бесконечные одинаковые лайн- и фид-хендлеры, уходят в ту самую "другую" команду


Ничего не понял. Технари любят технологии. Им интереснее с сокетами возиться. А кванты — да там немного самого языка (программирования) и куча математики.
Re[8]: Куда уходят умирать C++ программисты?
От: jazzer Россия Skype: enerjazzer
Дата: 13.06.12 03:53
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Да нормальный у меня настрой и у других тоже нормальный. Ты лучше уж поделись деталями (раз сам затронул тему что вы там сделали) сколько человек это пилило, обсуждало и неужели там не было никого кто бы воспротивился этому решению?


Я подозреваю, уважаемый lpc пришел в команду сильно позже того, когда это обсуждалось, так что ты не того человека спрашиваешь.
То, что я слышал про UBS — там было чисто менеджерское решение (Java как раз стала самым горячим мейнстримом), технарей особо никто не спрашивал, им предоставили потом в рамках принятого решения педалить то, что у них в результате напедалилось (по описанию сильно похоже на то, что описывает lpc).

ОК>Расскажи на пальцах в течении пяти минут подробнее. А то у меня до сих пор непонимание как можно преаллокейтить все объекты когда ты не знаешь даже в рантайме сколько их у тебя еще будет да и каких типов.


Да ладно тебе, не знаешь.
Берешь объем торгов с какого-нть Russell rebalance, умножаешь на 2 — вот тебе и оценка сверху.
Если памяти хватит все это преаллокировать в массивах (а в условиях рукопашного боя по голым буферам с почти нулевыми дополнительными издержками памяти это вполне реально) — большего и не надо.
Нафига только в такой конфигураци Java — не очень понятно, так как получается в результате чисто сишное решение по сути, хоть и через одно место.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[13]: Куда уходят умирать C++ программисты?
От: jazzer Россия Skype: enerjazzer
Дата: 13.06.12 04:00
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>>>Так и я об этом же. Одна команда (технари) переписывает Джаву (возможно даже и успешно), другая команда пишет хреновые стратегии и некачественный код (кванты) и нивелирует достижения первой команды.


J>>Угу. Именно поэтому самые хитрые технари , которых задрало писать бесконечные одинаковые лайн- и фид-хендлеры, уходят в ту самую "другую" команду


ОК>Ничего не понял. Технари любят технологии. Им интереснее с сокетами возиться.

Надоедает быстро. Меня лично задрало уже писать одно и то же, копаясь в кривизне очередного непродуманного протокола.
После пары написанных фид/лайн-хендлеров вся эта возня с сокетами превращается в скучнейшую рутину.

ОК>А кванты — да там немного самого языка (программирования) и куча математики.

Смотря какой бизнес. В HFT технологии в полный рост и на стороне стратегии, иначе, как ты правильно заметил, усилия программеров connectivity/market data будут нивелированы тормозной стратегией. А написать быструю стратегию при сохранении всех ее фич — это реальный вызов.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[9]: Куда уходят умирать C++ программисты?
От: mik1  
Дата: 13.06.12 05:24
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Я подозреваю, уважаемый lpc пришел в команду сильно позже того, когда это обсуждалось, так что ты не того человека спрашиваешь.

J>То, что я слышал про UBS — там было чисто менеджерское решение (Java как раз стала самым горячим мейнстримом), технарей особо никто не спрашивал, им предоставили потом в рамках принятого решения педалить то, что у них в результате напедалилось (по описанию сильно похоже на то, что описывает lpc).

Понятно, решение принималось тогда, когда нормальных сборщиков мусора не было. А потом уже динозавра было не переписать.

J>Да ладно тебе, не знаешь.

J>Берешь объем торгов с какого-нть Russell rebalance, умножаешь на 2 — вот тебе и оценка сверху.
J>Если памяти хватит все это преаллокировать в массивах (а в условиях рукопашного боя по голым буферам с почти нулевыми дополнительными издержками памяти это вполне реально) — большего и не надо.
J>Нафига только в такой конфигураци Java — не очень понятно, так как получается в результате чисто сишное решение по сути, хоть и через одно место.

Объём торгов? Market side на многих биржах занимает несколько 10-ков гигов. Для broker side все, впрочем, много проще — хорошей персоналки хватит.
Re[10]: Куда уходят умирать C++ программисты?
От: jazzer Россия Skype: enerjazzer
Дата: 13.06.12 05:43
Оценка: 1 (1) +2
Здравствуйте, mik1, Вы писали:

M>Понятно, решение принималось тогда, когда нормальных сборщиков мусора не было. А потом уже динозавра было не переписать.

Ну так это вдвойне глупость — взять язык со сборкой мусора и для начала выкинуть сборку мусора, так как она тормозит. И заодно выкинуть стандартную и остальные библиотеки и прочая, после чего от языка остается какое-то невнятное Си-подобное подмножество, которое гораздо проще и прямее было бы реализовать на языке, который для этого и предназначен (С/С++).
Каша из топора, в общем. Наверняка с десяток манагеров сделали себе карьеры на этом проекте.

M>Объём торгов? Market side на многих биржах занимает несколько 10-ков гигов. Для broker side все, впрочем, много проще — хорошей персоналки хватит.

Во-первых, не факт, что нужно хранить всю market data — в ней обычно куча полей, которые данной конкретной стратегии не нужны.
Во-вторых, не факт, что ее вообще надо хранить всю за день — вполне может быть, что будет достаточно одного текущего снапшота.
В общем, все от конкретной стратегии зависит.

ЗЫ. Если хочешь снести свое сообщение — жми не "Удалить", а "Удалить как ошибочное" — тогда оно исчезнет сразу же, если не было ответов.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: Куда уходят умирать C++ программисты?
От: Handie  
Дата: 13.06.12 13:03
Оценка:
H>>У меня был переход с C++ на Node.js.
H>>В результате трудоемкость упала раз в пять при сохранении производительности.

DV>а как вы ее, производительность, меряли?


Количество HTTP запросов в секунду и время отклика остались на прежнем уровне. Задержка ухудшилась у 5% запросов из-за сборщика мусора. Но это приемлимое зло, за счет трудоемкости окупается
Re[10]: Куда уходят умирать C++ программисты?
От: lpc Великобритания  
Дата: 13.06.12 23:56
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Мне все равно что там у вас и я очень хорошо знаю какие идиоты могут встречаться во всех этих компаниях. На всех ступеньках карьерной лестницы. "Чем бы дитя не тешилось лишь бы не плакало," в общем.


Не тяжело жить с мыслью что вокруг одни идиоты?

ОК>С опережением ты поспешил. Я это и не собирался спрашивать. Спрошу другое. Допустим вы выжали целую секунду с вашим решением. Теперь следуя этой логике имеет смысл оптимизировать драйвера и/или планировщик Линукса (Линукс чисто как пример). Вы не собираетесь там этим в ближайшее время заняться?


Настройками линукса, биоса и сетевого оборудования занимается отдельная команда. Там свои гики и я не совсем в теме.

P.S.: Планировшик к счастью оптимизировать не надо, т.к. ему особенно заниматься нечем — на каждый CPU биндится ровно 1 поток.
Re[10]: Куда уходят умирать C++ программисты?
От: lpc Великобритания  
Дата: 14.06.12 00:08
Оценка:
Здравствуйте, mik1, Вы писали:

M>Интересно таки, почему стоит оставлять от Явы одно название, но пользоваться ею.

M>Если маркет не 24-часовой, то в окнах можно чистить память/перезапускать процесс.

Именно так и происходит.

M>Следующий интересный вопрос — размер working set. Minor GC с || коллектором занимают > 0.1 секунды на несколько гигабайтных объёмах (причем тут есть шансы пошаманить, использовать G1 или машину от Azul).


Azul у нас был недавно, сейчас другие команды тестируют, но они сами говорят что будет в целом на 5% медленее, но зато без затыков. Для некоторых наших систем это будет хорошее решение.

M>Если же память вручную аллокировать, то возвращаемся к вопросу о фрагментации, компактированию и прочим около сборочно-мусорным вещам... Тут можно предположить, что памяти до фига и вы дотягиваете до окна в торгах. Только с дофига памяти можно и не городить такой огород...


Памяти ессно жрем дофига, никакой фрагментации не возникает т.к. память никогда не освобождается (но и не растет, за редким исключением). Без "городить огород" будет еще больше памяти жрать т.к. между объектами есть "дыры" (со всякими служебными полями), которые к тому же сильно увеличивают количество кэш миссов — перформанс тесты это очень хорошо показывают. Далее, чем больше объектов тем больше jvm/gc тратит ресурсов для поддержки card table. Разница между 1000000 объектов и 2000 может быть весьма ощутимая.
Re[8]: Куда уходят умирать C++ программисты?
От: lpc Великобритания  
Дата: 14.06.12 00:21
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Тут уже несколько человек раскритиковали ваше решение. Так уж и хорошо?


Совершенно не показатель. Эти несколько человек не являются экспертами в подобных системах, в то время как мы знаем и следим что делают конкуренты.

ОК>Да нормальный у меня настрой и у других тоже нормальный. Ты лучше уж поделись деталями (раз сам затронул тему что вы там сделали) сколько человек это пилило, обсуждало и неужели там не было никого кто бы воспротивился этому решению?


Пилило много людей, некоторых специально переманивали из других компаний, аналогичная технология используется у одного из крупнейших американских эксчейнджей (оно оригинально там и было придумано). Никто не противился, все только радовались. Извини но в цифрах и именах рассказывать не буду по понятным соображениям.

ОК>У вас память что ли бесконечна?


Ну по 48 гигов на каждом боксе минимум. Вполне себе конечно.

ОК>Давай уж, не говори про курс молодого бойца и два-три месяца. Расскажи на пальцах в течении пяти минут подробнее. А то у меня до сих пор непонимание как можно преаллокейтить все объекты когда ты не знаешь даже в рантайме сколько их у тебя еще будет да и каких типов.


С чего ты решил что сколько будет объектов и какого типа — неизвестно? Объемы рынков это не случайная величина и завтра в 5 раз больше чем вчера быть не может.
Re[9]: Куда уходят умирать C++ программисты?
От: lpc Великобритания  
Дата: 14.06.12 00:39
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Я подозреваю, уважаемый lpc пришел в команду сильно позже того, когда это обсуждалось, так что ты не того человека спрашиваешь.

J>То, что я слышал про UBS — там было чисто менеджерское решение (Java как раз стала самым горячим мейнстримом), технарей особо никто не спрашивал, им предоставили потом в рамках принятого решения педалить то, что у них в результате напедалилось (по описанию сильно похоже на то, что описывает lpc).

Я бы посоветовал не делать выводов из ложных предпосылок, слухов и догадок. А то ерунда обычно всякая получается... так в двух предложениях выше — все мимо тазика.

J>Нафига только в такой конфигураци Java — не очень понятно, так как получается в результате чисто сишное решение по сути, хоть и через одно место.


Решение получается далеко не сишное. Никто не запрещает использовать наследование и даже (сюрприз!) рефлексию. Чем это лучше С++ я уже писал.
Re[15]: Куда уходят умирать C++ программисты?
От: lpc Великобритания  
Дата: 14.06.12 00:45
Оценка:
Здравствуйте, kaa.python, Вы писали:

ОК>>Ну начинается. Простой, лаконичный код который можно понять сходу и/или пройтись отладчиком если надо. Так чтобы плеваться не приходилось. На счет 2). Вместо #define MY_CONST 7 пишешь const int MyConst = 7; или енумы, вместо #define SQUARE(x) ((x) * (x)) пишешь соответсвенно инлайн функцию, на счет темплейтов — пользуешься стандартными контейнерами и смарт пойнтерами и очень редко когда сам пишешь темплейтные функции и классы. Большего и не нужно.


KP>Около 5 лет назад (с тех пор я студией не пользовался) она в легкую разбирала куда более сложные конструкции чем ты привел. Тут дело не в студии, lpc просто за уши какие-то нелепые причины притягивает. Полагаю, именно они были использованы для обоснования описанного выше пятиколесного велосипеда с изменяемой геометрией крыла и воздушной подушкой.


Боюсь здесь дело все таки в студии, а не в lpc. А еще в том, что у кого то остались светлые романтические воспоминания 5 летней давности о старой доброй студии. Мне когда то VC5 очень нравилась, после борланда под досом.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.