Re[4]: Новости .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 17:58
Оценка:
Здравствуйте, Aquilaware, Вы писали:

A>Здравствуйте, Serginio1, Вы писали:


S>> Угу, а как тебе кестрел? Посмотри бенчмарки https://github.com/aspnet/benchmarks


A>Это дутые бенчмарки, потому что Кестрел никто в здравом уме не выставит на прямую на 80/443 порт из-за соображений безопасности. Сначала пропустят через Nginx или тот же IIS в прокси режиме. И какую производительность получим в результате? Как минимум такую же как у IIS или Nginx в прокси режиме или хуже.

У меня нет других бенчмарков. Но суть в том, что .Net Core и NetStandard развиваются. Обычный .Net никуда не уйдет, а .Net Core развивается в том числе и UWP, Xamarin. Это все нужно изучать и использовать.
и солнце б утром не вставало, когда бы не было меня
Re[5]: Новости .Net Core
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.12.16 18:07
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> У меня нет других бенчмарков. Но суть в том, что .Net Core и NetStandard развиваются.


Но еще совсем недавно Portable Class Libraries тоже развивалась. И где она теперь?
Я уж не говорю что с NetStandard опять какие то чудеса. Решил я проапгрейдить log4net с 2.0.5 (вообще без зависимостей) на 2.0.6. А оно мне фигакс и предлагает заодно еще 26 пакетов поставит. Не, я понимаю, шимы, совсмертикость с кором, но нафига мне все это на веб-сервере, где гарантированно всегда стоит самый свежий обычный фреймворк?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[5]: Новости .Net Core
От: Aquilaware  
Дата: 28.12.16 18:30
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> У меня нет других бенчмарков. Но суть в том, что .Net Core и NetStandard развиваются.


Насчет .NET Standard сомнений нет, так как он наследник PCL.

Хотелось бы верить в лучшее, но у .NET Core туманное будущее. Дело не сколько в бенчмарках, сколько в людях которые им занимаются. Подмена понятий, имитация релизов, отстутствие итеративности в проекте, попытки обьять необьятное, некоторая технологическая и идеологическая отсталость, сверх-минимальные API которые граничат с бесполезностью, постоянные изменения ради изменений. История показывает, что такие проекты не выстреливают. Буду очень удивлен если ошибаюсь.
Re[4]: «Производительность – это фича». Интервью с Марко Чек
От: Aquilaware  
Дата: 28.12.16 18:36
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Ты хоть смотрел или читал данную ссылку? Там много интересного, в том числе и .Net Core


Статью читал. Захожу по ссылке, нажимаю Ctrl+F, ищу "kestrel", "кестрел", ".NET Core" и ничего не нахожу. Я признаю, что есть вероятность, что я делаю что-либо не так. Но за ссылку спасибо, она интересная.
Re[6]: Новости .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 19:58
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Serginio1, Вы писали:


S>> У меня нет других бенчмарков. Но суть в том, что .Net Core и NetStandard развиваются.


AVK>Но еще совсем недавно Portable Class Libraries тоже развивалась. И где она теперь?

Плавно переходит в NetStandard
AVK>Я уж не говорю что с NetStandard опять какие то чудеса. Решил я проапгрейдить log4net с 2.0.5 (вообще без зависимостей) на 2.0.6. А оно мне фигакс и предлагает заодно еще 26 пакетов поставит. Не, я понимаю, шимы, совсмертикость с кором, но нафига мне все это на веб-сервере, где гарантированно всегда стоит самый свежий обычный фреймворк?

Там log4net был видно старый NetStandard, а в 2.0.6 скорее 1.6 который сделан под .Net Core и тащит кучу библиотек.
Ждемс .Net Core 1.2 и NetStandard 2.0 который кстати ориентирован на .Net 4.6.1

Кстати обещают к маю ET Core 2.0 Planned for Spring 2017
и солнце б утром не вставало, когда бы не было меня
Re[6]: Новости .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 20:00
Оценка:
Здравствуйте, Aquilaware, Вы писали:

Проблема в том, что MS зарабатывает на Azure, а для неё нужен .Net Core. И нужно чем быстрее трем лучше.
и солнце б утром не вставало, когда бы не было меня
Re[7]: Новости .Net Core
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.12.16 20:05
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

AVK>>Но еще совсем недавно Portable Class Libraries тоже развивалась. И где она теперь?

S> Плавно переходит в NetStandard

Плавно? Ну ну.

S> Там log4net был видно старый NetStandard


Там вообще никаких зависимостей не было, ни старых, ни новых.

S>а в 2.0.6 скорее 1.6 который сделан под .Net Core и тащит кучу библиотек.


1.3
Только к чему эти все рассказы, если оно хочет 26 пакетов поставить? Ну стоит же в настройках проекта — FW 4.6.2. Зачем тащить все это порно, если под кором я код не запускал и не собираюсь?

S>Ждемс .Net Core 1.2 и NetStandard 2.0 который кстати ориентирован на .Net 4.6.1


Ну жди, чо.
AVK Blog
Re[5]: «Производительность – это фича». Интервью с Марко Чек
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 20:06
Оценка:
Здравствуйте, Aquilaware, Вы писали:

A>Здравствуйте, Serginio1, Вы писали:


S>>Ты хоть смотрел или читал данную ссылку? Там много интересного, в том числе и .Net Core


A>Статью читал. Захожу по ссылке, нажимаю Ctrl+F, ищу "kestrel", "кестрел", ".NET Core" и ничего не нахожу. Я признаю, что есть вероятность, что я делаю что-либо не так. Но за ссылку спасибо, она интересная.


Прошу прощения. Был невнимателен. Спутал с другой статьей
Интересное интервью «Хаос в .NET-мире — разумная цена за скорость развития платформы»: интервью с Андреем Акиньшиным (JetBrains)

А та статья просто из мира Net. И прежде всего про stackoverflow как пример успешности .Net.
и солнце б утром не вставало, когда бы не было меня
Re[8]: Новости .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.12.16 20:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>1.3

AVK>Только к чему эти все рассказы, если оно хочет 26 пакетов поставить? Ну стоит же в настройках проекта — FW 4.6.2. Зачем тащить все это порно, если под кором я код не запускал и не собираюсь?

Возможно они Scripting Api (Roslyn), а он как раз и тащит кучу библиотек
S>>Ждемс .Net Core 1.2 и NetStandard 2.0 который кстати ориентирован на .Net 4.6.1

AVK>Ну жди, чо.

Мы все ждем, что бы и ты не тащил в дальнейшем кучу библиотек
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.12.2016 20:23 AndrewVK . Предыдущая версия .
Re[8]: Новости .Net Core
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.12.16 06:56
Оценка: -1
Здравствуйте, AndrewVK, Вы писали:

AVK>Там вообще никаких зависимостей не было, ни старых, ни новых.


Вот смотрю я на project.json

И вижу
 "dependencies": {

        "System.AppContext": "4.1.0",

        "System.Collections.NonGeneric": "4.0.1",

        "System.Console": "4.0.0",

        "System.Diagnostics.Debug": "4.0.11",

        "System.Diagnostics.Process": "4.1.0",

        "System.Diagnostics.StackTrace": "4.0.1",

        "System.Diagnostics.TraceSource": "4.0.0",

        "System.IO.FileSystem": "4.0.1",

        "System.IO.FileSystem.Watcher": "4.0.0",

        "System.Linq": "4.1.0",

        "System.Net.NameResolution": "4.0.0",

        "System.Net.Requests": "4.0.11",

        "System.Net.Sockets": "4.1.0",

        "System.Reflection": "4.3.0",

        "System.Reflection.Extensions": "4.0.1",

        "System.Reflection.TypeExtensions": "4.1.0",

        "System.Runtime.Extensions": "4.1.0",

        "System.Runtime.InteropServices": "4.1.0",

        "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",

        "System.Runtime.Serialization.Formatters": "4.3.0",

        "System.Text.RegularExpressions": "4.1.0",

        "System.Threading": "4.0.11",

        "System.Threading.Thread": "4.0.0",

        "System.Threading.Timer": "4.0.1",

        "System.Xml.ReaderWriter": "4.0.11",

        "System.Xml.XmlDocument": "4.0.1"

      }


И я сильно сомневаюсь, что в старой версии https://www.nuget.org/packages/log4net/2.0.5 был NetStandard
Просто сейчас они сделали кроссплатформенный вариант, но тащат с собой те библиотеки которые сделаны под .Net Core.
Впринципе они тебе не мешают. Они лежат в c:\Users\AndrewVK\.nuget\packages\
и особо есть то не просят, правда при компиляции они в паке с целевым файлом. В .Net Core есть режимы компиляции когда ты будешь использовать файлы из NuGet или из

Self-contained дистрибуция .NET Core приложений

Когда .NET Core устанавливается, то он находится, например, в C:\program files\dotnet на Windows. В директории “Shared” есть куча .NET штук, которые, скажем так, shared т.е. общие. Может быть множество директорий внутри, как вы можете увидеть ниже в моей папке на скриншоте. У вас может быть множество установок .NET Core.

Когда вы устанавливаете свое приложение и его зависимости, НО НЕ .NET Core само, то вы зависите от .NET Core, которое уже установлено на целевой машине. Это прекрасно для Web Apps или для систем с большим количеством приложений, но что если я захочу написать приложение и дать его вам в качестве zip или на usb флешке и я просто хочу чтобы оно работало. Я могу включить .NET Core в придачу, тогда из всего это и получится Self Contained Deployment.

и солнце б утром не вставало, когда бы не было меня
Отредактировано 29.12.2016 7:26 Serginio1 . Предыдущая версия .
Re: Новости .Net Core
От: QrystaL Украина  
Дата: 13.01.17 13:01
Оценка: 77 (4) +1 :)
https://github.com/dotnet/corefx/issues/15135

Re[6]: Новости .Net Core
От: Sinix  
Дата: 13.01.17 13:22
Оценка: +1 :)))
Здравствуйте, AndrewVK, Вы писали:

AVK>Я уж не говорю что с NetStandard опять какие то чудеса. Решил я проапгрейдить log4net с 2.0.5 (вообще без зависимостей) на 2.0.6. А оно мне фигакс и предлагает заодно еще 26 пакетов поставит. Не, я понимаю, шимы, совсмертикость с кором, но нафига мне все это на веб-сервере, где гарантированно всегда стоит самый свежий обычный фреймворк?


А это последствия NIH и попытки изобрести сборки заново, в виде нюгет-пакетов. Три года про неизбежный бардак предупреждали, результат — "изобретение" метапакетов, которые работают только с новым форматом проектов и толком будут работать только в следующем .net standard, не 2.0 который, а следующий. Энжой, как говорится.

UPD: да ёжтвоютак, они сделали это снова:

Package reduction
Value: .NET Core is now 1 package instead of 100's of tiny packages
We realized that we went overboard with the number of individual library packages we have. While it enables a very flexible system it also greatly increases the complexity of composing a fully functional framework.

(c)

*quadro_facepalm.png*

QrystaL выше то же самое запостил.

AVK>Зачем тащить все это порно, если под кором я код не запускал и не собираюсь?


А это log4net не смогли в dependencies в nuspec.
  <group targetFramework="net40">...</group>  для кого придумали, спрашивается?:))


UPD Починено.
Я таки ничего не буду говорить, но в приличных домах на ci-сервере таки крутится догфудинг-версия тестов. Именно по этой причине.
Отредактировано 13.01.2017 13:46 Sinix . Предыдущая версия . Еще …
Отредактировано 13.01.2017 13:33 Sinix . Предыдущая версия .
Отредактировано 13.01.2017 13:25 Sinix . Предыдущая версия .
Re: .NET Native Performance and Internals
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.03.17 07:32
Оценка: 31 (2)
Здравствуйте, Serginio1, Вы писали:

Кстати интересная статья .NET Native Performance and Internals

Там по сути там любимые сишниками тесты

MatrixMultiplication — Выполняет наивное O (n ^ 3) умножение двух целых матриц. Есть две версии этого кода — для прямоугольных (многомерных) и неровных массивов. Хороший оптимизирующий компилятор может выполнять здесь несколько оптимизаций, таких как замена циклов, векторизация, FMA и т. Д.
Рабочий стол JIT RectangularMatrixMultiplication — 50.30814ms
.NET Native RectangularMatrix Multiplication — 187.3474ms
Рабочий стол JIT JaggedMatrixMultiplication — 33.11678ms
.NET Native JaggedMatrixMultiplication — 33.08566ms
C ++ Matrix Multiplication — 21.11234ms



Мандельброт — вычисляет множество Мандельброта в заданных измерениях. Это контрольный показатель, который не имеет доступа к большому количеству памяти, но работает с узким циклом с умножениями и дополнениями, которые могут извлечь выгоду из векторизации, интеллектуального распределения регистров, переопределения команд и других соображений, которые использует оптимизирующий компилятор. Из всех приведенных выше показателей это, пожалуй, самый реалистичный с точки зрения количества и качества кода.
Обои для рабочего JIT Mandelbrot — 32.18214ms
.NET Native Mandelbrot — 46.48744ms
C ++ Mandelbrot — 15.26277ms
Полученные результаты довольно убедительны. На данный момент .NET Native не использует никаких оптимизаций супер-умного компилятора, которые приводят его производительность в соответствие с кодом на C ++. В некоторых случаях он даже генерирует код, который не подпадает под JIT рабочего стола (в частности, прямоугольные массивы и тесты Mandelbrot). Важно помнить, что это все еще предварительный просмотр, и я буду очень рад повторить эти измерения, когда будет выпущена обновленная версия .NET Native. Я знаю, что команда .NET Native активно работает над оптимизацией компилятора.



Пока C++ в сложных для .Net Jita алгоритмах проигрывает C++ в 2 раза. .Net Native пока сырой

Это данные от 14 года.
Скомпилировал на 2017 студии.

Вот данные в VS 2015


AddVectors — 1.35302ms
NativeAddVectors — 0.93864ms
AddScalarToVector — 1.18009ms
NativeAddScalarToVector — 0.7964ms
InterfaceDevirtualization — 3.06194ms
AbstractClassDevirtualization — 2.22129ms
Memcpy — 1.07673ms
NativeMemcpy — 0.45323ms
MulDivShifts — 5.24405ms
NativeMulDivShifts — 4.65341ms
RectangularMatrixMultiplication — 83.31062ms
JaggedMatrixMultiplication — 44.85074ms
NativeMatrixMultiplication — 18.64064ms
Mandelbrot — 11.69964ms
NativeMandelbrot — 15.41565ms
Discrepancies on Mandelbrot: 0


Вот тот же код для VS 2017 только для манагед. С++ пока ошибка. Нужно скомпилировать под win 10

AddVectors — 0,83342ms
AddScalarToVector — 0,50806ms
InterfaceDevirtualization — 2,14707ms
AbstractClassDevirtualization — 2,16749ms
Memcpy — 0,68196ms
MulDivShifts — 4,61984ms
RectangularMatrixMultiplication — 37,0944ms
JaggedMatrixMultiplication — 36,38963ms
Mandelbrot — 9,40842ms



То есть ускорение в 1.5-2 раза
И очень близко к реальному нативу

Cltkfk

Сделал отчет для .Net Core

AddVectors — 1,2154ms
AddScalarToVector — 0,99208ms
InterfaceDevirtualization — 2,79406ms
AbstractClassDevirtualization — 2,14465ms
Memcpy — 0,6675ms
MulDivShifts — 4,8818ms
RectangularMatrixMultiplication — 85,2632ms
JaggedMatrixMultiplication — 40,28376ms
Mandelbrot — 10,1158ms


Для .Net Core 2

AddVectors — 1,14375ms
AddScalarToVector — 0,79344ms
InterfaceDevirtualization — 0,308ms
AbstractClassDevirtualization — 0,30543ms
Memcpy — 0,666 ms
MulDivShifts — 4,97312ms
RectangularMatrixMultiplication — 125,5858ms
JaggedMatrixMultiplication — 67,31645ms
Mandelbrot — 10,0221ms


Интересно, что

InterfaceDevirtualization,AbstractClassDevirtualization ускорился раз в 10, а скорость
RectangularMatrixMultiplication,JaggedMatrixMultiplication наоборот увеличилась в 1,5 раза

Для .Net Native
Просто выбросила
InterfaceDevirtualization — 9E-05ms
AbstractClassDevirtualization — 3E-05ms
и солнце б утром не вставало, когда бы не было меня
Отредактировано 15.10.2017 20:13 Serginio1 . Предыдущая версия . Еще …
Отредактировано 15.10.2017 18:30 Serginio1 . Предыдущая версия .
Отредактировано 15.10.2017 18:08 Serginio1 . Предыдущая версия .
Отредактировано 15.10.2017 18:04 Serginio1 . Предыдущая версия .
Отредактировано 01.04.2017 6:18 Serginio1 . Предыдущая версия .
Отредактировано 31.03.2017 7:13 Serginio1 . Предыдущая версия .
Отредактировано 28.03.2017 10:45 Serginio1 . Предыдущая версия .
Отредактировано 28.03.2017 10:41 Serginio1 . Предыдущая версия .
Re[2]: .NET Native Performance and Internals
От: KRT Украина  
Дата: 28.03.17 09:22
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> .Net Native пока сырой


Есть подозрение, что со времени выхода статьи (Apr. 29, 14) его немного допилили.
Re[3]: .NET Native Performance and Internals
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.03.17 09:33
Оценка:
Здравствуйте, KRT, Вы писали:

KRT>Здравствуйте, Serginio1, Вы писали:


S>> .Net Native пока сырой


KRT>Есть подозрение, что со времени выхода статьи (Apr. 29, 14) его немного допилили.

Опаньки! Сейчас проверю на 2017. Спасибо!
и солнце б утром не вставало, когда бы не было меня
Отредактировано 28.03.2017 9:35 Serginio1 . Предыдущая версия .
Re[2]: .NET Native Performance and Internals
От: vdimas Россия  
Дата: 30.03.17 07:22
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>

S>MatrixMultiplication — Выполняет наивное O (n ^ 3) умножение двух целых матриц. Есть две версии этого кода — для прямоугольных (многомерных) и неровных массивов. Хороший оптимизирующий компилятор может выполнять здесь несколько оптимизаций, таких как замена циклов, векторизация, FMA и т. Д.
S>Рабочий стол JIT RectangularMatrixMultiplication — 50.30814ms
S>.NET Native RectangularMatrix Multiplication — 187.3474ms
S>Рабочий стол JIT JaggedMatrixMultiplication — 33.11678ms
S>.NET Native JaggedMatrixMultiplication — 33.08566ms
S>C ++ Matrix Multiplication — 21.11234ms


По-идее, при одинаковом уровне косвенности и в сценарии возможной оптимизации в дотнете проверки на границы массива в цикле, дотнетный код должен вести себя практически так же как нейтивный в целочисленных операциях. Я это еще лет 10 назад озвучивал, т.к. тоже получал близкие значения. Там нейтив немного выигрывал лишь за счёт раскрутки тела цикла с кратностью 8/16/32 и т.д. (зависит от объема тела цикла).
Re[3]: .NET Native Performance and Internals
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.03.17 07:40
Оценка:
Здравствуйте, vdimas, Вы писали:



V>По-идее, при одинаковом уровне косвенности и в сценарии возможной оптимизации в дотнете проверки на границы массива в цикле, дотнетный код должен вести себя практически так же как нейтивный в целочисленных операциях. Я это еще лет 10 назад озвучивал, т.к. тоже получал близкие значения. Там нейтив немного выигрывал лишь за счёт раскрутки тела цикла с кратностью 8/16/32 и т.д. (зависит от объема тела цикла).


Ну еще есть SIMD оптимизации. JIT должен отрабатывать быстро, а вот Net Native может оптимизировать машинный код.
и солнце б утром не вставало, когда бы не было меня
Re[4]: .NET Native Performance and Internals
От: vdimas Россия  
Дата: 31.03.17 08:18
Оценка:
Здравствуйте, Serginio1, Вы писали:

V>>По-идее, при одинаковом уровне косвенности и в сценарии возможной оптимизации в дотнете проверки на границы массива в цикле, дотнетный код должен вести себя практически так же как нейтивный в целочисленных операциях. Я это еще лет 10 назад озвучивал, т.к. тоже получал близкие значения. Там нейтив немного выигрывал лишь за счёт раскрутки тела цикла с кратностью 8/16/32 и т.д. (зависит от объема тела цикла).

S>Ну еще есть SIMD оптимизации. JIT должен отрабатывать быстро

SIMD — это НЕ оптимизации. Это задействование имеющихся дополнительных регистров и операций над ними или нет. Т.е. речь лишь о том, что для плавающей арифметики использование SIMD не было реализовано, но могло бы быть запросто.


S>а вот Net Native может оптимизировать машинный код.


Что является минусом как раз для случая SIMD, где в ходу машинки с минимум 5-ю поколениями/версиями этого SIMD, т.е. заранее не угадаешь. И, напротив, технологии JIT или AOT могут переводить исходный байт-код в нейтивный, нацеленный на конкретный проц в системе.

Заметь, что в виндах для разных процов используются разные "драйвера" этих процессоров. А на самом деле там разные микроядра для каждой архитектуры, ведь банально сохранять при переключении контекста надо разный набор регистров (даже не углубляясь в другие отличия процов).
Re[5]: .NET Native Performance and Internals
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.03.17 08:22
Оценка: -1
Здравствуйте, vdimas, Вы писали:


V>Что является минусом как раз для случая SIMD, где в ходу машинки с минимум 5-ю поколениями/версиями этого SIMD, т.е. заранее не угадаешь. И, напротив, технологии JIT или AOT могут переводить исходный байт-код в нейтивный, нацеленный на конкретный проц в системе.


V>Заметь, что в виндах для разных процов используются разные "драйвера" этих процессоров. А на самом деле там разные микроядра для каждой архитектуры, ведь банально сохранять при переключении контекста надо разный набор регистров (даже не углубляясь в другие отличия процов).


Угу как раз компиляция то идет в магазине или подбирается код к уже скомпиленному коду для этой машины.
Ты хоть читаешь про технологии о чем обсуждаешь?
и солнце б утром не вставало, когда бы не было меня
Re[6]: .NET Native Performance and Internals
От: vdimas Россия  
Дата: 31.03.17 09:48
Оценка:
Здравствуйте, Serginio1, Вы писали:

V>>Заметь, что в виндах для разных процов используются разные "драйвера" этих процессоров. А на самом деле там разные микроядра для каждой архитектуры, ведь банально сохранять при переключении контекста надо разный набор регистров (даже не углубляясь в другие отличия процов).

S> Угу как раз компиляция то идет в магазине или подбирается код к уже скомпиленному коду для этой машины.

-1
Это не работает для десктопной 10-ки.


S>Ты хоть читаешь про технологии о чем обсуждаешь?


Возвращаю вопрос.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.