Здравствуйте, vdimas, Вы писали:
V>·>Нет, хоть какие-нибудь реальные цифры, хоть что-то похожее на проверяемые факты, а не простое форумное блаблабла.
V>Я тебе именно факты привел.
V>Контора продаёт нейтивные, дотнетные и джавовские решения, нейтивных намного больше.
Может просто ваше джава решение не лучшее? И за джавой идут к другим?
V>·>Я могу например предложить погуглить HFT-позиции — java составляет не менее трети, остальное native, c# — в микроскоп не видно, и в основном GUI (что не совсем HFT в общем-то). Притом многие позиции в top 10 IB, а их бедными назвать язык не поворачивается.
V>Да где ты там треть увидел-то? ))
V>http://www.indeed.com/q-High-Frequency-Trading-Developer-jobs.html
181 jobs
http://www.indeed.com/q-High-Frequency-Trading-Developer-java-jobs.html
51 jobs
51/181 = 28%.
Ещё посмотри "low latency developer". Там даже где-то половина.
V>>>Я не могу уловить, где именно ты проводишь границу. Похоже, прямо по Джаве, ы-ы-ы. ))
V>·>По Language Specification, очевидно.
V>В самом языке нет потоков. А вот в системной библиотеке, являющейся частью стандарта, уже есть.
Прежде чем заявлять очередную глупось — погугли хоть 10 сек. Ключевое слово "jls-17".
Ещё намёк — в каком пакете находится класс Thread?
А вот всякие сетевые сокеты, файлы, коллекции, регекспы и прочее — да, это часть стандартной библиотеки, а не языка.
Это кстати одно время в упрёк Яве ставили, что мол треды — неотъемлемая часть языка. Даже такое чудо как green threads было.
V>>>·>Шустрость не нужна разве? Ведь dotnet уже почти работает быстрее натива...
V>>>Шустрость джаве нужна, конечно. Но, боюсь у меня для тебя плохие новости. В этом плане в Джаве не ожидается НИЧЕГО в ближайшие лет 10 уж точно.
V>·>Не увиливай. Почему HTTP не реализован с unsafe, а в FIX приходится? В HTTP не нужна шустрость?
V>Я тебе уже ответил, но ты не понял ни слова, как обычно.
V>V>асинхронные сокеты на IOCP реализованы в нейтиве
Причём тут вообще сокеты? Зачем ты упомянул их? Как они с протоколами HTTP или FIX связаны?
В смысле у вас только IOCP сокеты в нативе, а всё остальное на c#? Ты же сам говорил, что синхронизация, многопоточность и управление памятью тоже нативные.
V>·>Врёшь. Или цитату в студию.
V>Вот твоя цитата:
V>V>Ты ошибся с тестом BlockingQueue, назвав его тестом дизраптора
V>Очевидно, что ты НЕ понимаешь, что есть дисраптор и на какой именно тест я дал тебе ссылку.
Что за упрямое невежество? Я прекрасно понимаю что такое дизраптор, использовал лично.
V>·>"Я делал синтетические тесты и на джаве и на дотнете с генерацией объектов и отправки их в другой поток. Дык, Disruptor именно это и делает. " — ты всё ещё уверен, что дизраптор так и делает? Повторяю, с дизраптором объекты не генерятся, а переиспользуются преаллоцированные. Ссылку которую ты привёл в качестве "доказательства" — дизраптор не использовался вообще.
V>Это и есть дисраптор. Это его базовый Lego-кубик (один из 3-х, вернее, с идентичным интерфейсом).
А доказать?
V>Стандартный цикл обращения объектов через межпоточный буфер и обратно в "пул" реализованы как две встречных очереди, ссылку на тест которой (очереди) я тебе дал.
Бред. Ты дал ссылку на тест, который реализует three producers -> one consumer используя стандартный BlockingQueue.
С дизраптором подобный тест в соседней папочке:
https://github.com/LMAX-Exchange/disruptor/blob/master/src/perftest/java/com/lmax/disruptor/sequenced/ThreeToOneSequencedThroughputTest.java Вот тут используется RingBuffer и SequenceBarrier, которые собственно и образуют дизраптор.
А вот результаты запуска этих тестов и сравнения результатов:
отсюда:
https://github.com/LMAX-Exchange/disruptor/wiki/Performance-Results