Re[50]: dotnet vs java 2016-2020
От: · Великобритания  
Дата: 21.10.16 10:00
Оценка:
Здравствуйте, 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, которые собственно и образуют дизраптор.
А вот результаты запуска этих тестов и сравнения результатов:

Array Blocking Queue Disruptor
Sequencer: 3P – 1C 5,539,531 13,403,268
отсюда: https://github.com/LMAX-Exchange/disruptor/wiki/Performance-Results
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.