Re[35]: dotnet vs java 2016-2020
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.10.16 11:00
Оценка: +1
Здравствуйте, ·, Вы писали:

·>Кстати, я почитал твои ссылки с графиками. Не понял что именно ты хотел доказать. Это что-ли?

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

С дотнетом проблема не в производительности, а в том, что это закрытая технология и до недавних пор Windows-only.
Собственно, если надо выжать максимум производительности, то здесь .Net уделает джаву, как тузик грелку. Но мулька в том, что слишком много контор выбирают в первую очередь открытые технологии даже в ущерб производительности.
Это облегает майнтенанс и снижает целую кучу рисков.
Собственно, Микрософт работает над этой проблемой, но мягко говоря, запоздало — это надо было лет 10 назад сделать.

Разница между нейтивом и менеджед кодом, фактически, в эффективности использования кеша процессора, ядер и планирования IO. И если менеджед хорошо справляется с IO и потоками, то с кешем всё очень плохо — менеджед, любой, независимо от природы, перепахивает в основном память.
Для того, что бы лучше использовать кеш, нужна та самая локальность — стек, регистры, value type и тд. В дотнете кучка костылей в наличии. В джаве — практически ничего. Более того, благодаря type erasure джавовские контейнеры мягко говоря не блещут производительностью в менеджед мире. Там где в дотнете будет одна страница памяти благодаря генерикам, в джаве будет граф рандомно разбросаный по памяти.
Отредактировано 14.10.2016 11:07 Pauel . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.