Сообщение Re[53]: dotnet vs java 2016-2020 от 19.10.2016 13:05
Изменено 19.10.2016 13:16 Serginio1
·>Здравствуйте, Serginio1, Вы писали:
S>>·>На уровне байткода никаких дженериков и делегатов нет, JIT-у пофиг что инлайнить. Компаратор такой же класс, имплементирующий интерфейс, как и всё остальное.
S>> В том чиле и метод. Это касается прежде всего int, byte, Int64 где вызов метода 1+1, значительно дольше самого сложения, сравнения
·>Что "метод"? Имплементировать интерфейс — значит написать имплементацию метода(ов) этого интерфейса. После девиртуализации вызова Comparator.compare станет доступным тело метода для инлайнинга.
Вот кстати для примера посмотри на stackalloc для классов и какое оно дает ускорение.
http://xoofx.com/blog/2015/10/08/stackalloc-for-class-with-roslyn-and-coreclr/
S>>>> То есть ты сравнивал мобильниках на java 5 и 6 с .Net Native?
S>>·>Нет, не сравнивал. Я вообще с мобильниками дела не имею. Но я бы удивился, если бы джава отстала по перформансу.
S>> Для мобильных платформ там совсем другие VM.
·>И что? Они медленнее .net что-ли?
Не знаю. Я лишь, говорю о том, что .Net Native может использовать более продвинутую компиляцию в машинный код
и не зависит от установленного .Net Core
S>>>> Угу. Весь мир Андроида сидит на java 5 или как раз с 6.
S>>·>Какая разница кто на чём сидит? Комбинации, однако: dotnet vs java 2016-2020.
S>> То есть VM для вех версий одна? Да и андроидов разных полно.
·>Что? Почему? Ты о чём?
Я про мобильные устройства говорю, а ты мне ссылки для декстопа.
S>>>>·>И компилятор тоже есть, для особо страждущих. https://www.excelsiorjet.com/
S>>>> Еще раз смотрим версию, и вспоминаем на чем народ на Андроид до сих пор сидит
S>>·>https://www.excelsior-usa.com/jetdladdon.php?jetversion=700
S>> А где Андроид? Мы то говорим про мобильные платформы. .Net Native выгоден прежде всего для мобильных устройств.
·>Так для андроида ART есть, я же говорил уже, можно тупо локально dex2oat запускать для генерации бинарика.
Еще раз это аналог .NGEN. Он мало, что дает. И оптимизации для андроид версии там скорее всего нет, ибо батарея будет садиться быстро.
·>Здравствуйте, Serginio1, Вы писали:
S>>·>На уровне байткода никаких дженериков и делегатов нет, JIT-у пофиг что инлайнить. Компаратор такой же класс, имплементирующий интерфейс, как и всё остальное.
S>> В том чиле и метод. Это касается прежде всего int, byte, Int64 где вызов метода 1+1, значительно дольше самого сложения, сравнения
·>Что "метод"? Имплементировать интерфейс — значит написать имплементацию метода(ов) этого интерфейса. После девиртуализации вызова Comparator.compare станет доступным тело метода для инлайнинга.
Вот кстати для примера посмотри на stackalloc для классов и какое оно дает ускорение.
http://xoofx.com/blog/2015/10/08/stackalloc-for-class-with-roslyn-and-coreclr/
S>>>> То есть ты сравнивал мобильниках на java 5 и 6 с .Net Native?
S>>·>Нет, не сравнивал. Я вообще с мобильниками дела не имею. Но я бы удивился, если бы джава отстала по перформансу.
S>> Для мобильных платформ там совсем другие VM.
·>И что? Они медленнее .net что-ли?
Не знаю. Я лишь, говорю о том, что .Net Native может использовать более продвинутую компиляцию в машинный код
и не зависит от установленного .Net Core
S>>>> Угу. Весь мир Андроида сидит на java 5 или как раз с 6.
S>>·>Какая разница кто на чём сидит? Комбинации, однако: dotnet vs java 2016-2020.
S>> То есть VM для вех версий одна? Да и андроидов разных полно.
·>Что? Почему? Ты о чём?
Я про мобильные устройства говорю, а ты мне ссылки для декстопа.
S>>>>·>И компилятор тоже есть, для особо страждущих. https://www.excelsiorjet.com/
S>>>> Еще раз смотрим версию, и вспоминаем на чем народ на Андроид до сих пор сидит
S>>·>https://www.excelsior-usa.com/jetdladdon.php?jetversion=700
S>> А где Андроид? Мы то говорим про мобильные платформы. .Net Native выгоден прежде всего для мобильных устройств.
·>Так для андроида ART есть, я же говорил уже, можно тупо локально dex2oat запускать для генерации бинарика.
Еще раз это аналог .NGEN. Он мало, что дает. И оптимизации для андроид версии там скорее всего нет, ибо батарея будет садиться быстро.
Кстати ты просил цифры. Их есть у меня
https://msdn.microsoft.com/ru-ru/magazine/mt590967.aspx
Как .NET Native влияет на вашу работу и на ваше приложение?
Результаты вашей работы скорее всего будут варьироваться, но в большинстве случаев ваше приложение будет запускаться и выполняться быстрее, а также использовать меньше системных ресурсов. Вы можете ожидать до 60% прироста скорости первого запуска приложения и до 40% при последующих запусках («теплых» запусках). Ваши приложения будут потреблять меньше памяти после компиляции в «родной» машинный код. Все зависимости от исполняющей среды .NET удаляются, поэтому конечным пользователям никогда не придется прерывать установку вашего приложения для получения специфической версии .NET Framework, на которую оно ссылается. По сути, все зависимости от .NET упаковываются в ваше приложение, поэтому его поведение не должно меняться просто потому, что на машину устанавливается другая версия .NET Framework.
Хотя ваше приложение компилируется в неуправляемые двоичные файлы, вы все равно можете использовать преимущества .NET-языков, к которым вы привыкли (C# или Visual Basic), и превосходные инструменты, связанные с ними. Наконец, вы можете по-прежнему применять всеобъемлющую и согласованную модель программирования, доступную благодаря .NET Framework с богатыми API для прикладной логики, встроенного управления памятью и обработки исключений.
За счет .NET Native вы получаете лучшее из двух миров: управляемой разработки и C++ с его колоссальной производительностью. Неплохо, да?
Вот такие маркетинговые речи!