Я - Fullstack, но почти 7 последних лет работал чисто с Backand'ом. Сейчас возвращаюсь во Frontend. Немного шокирован как всё поменялось за эти годы. Месяц работаю с React'ом и вот у меня ровно те же мысли что и у автора! Хочу более простого/примитивного взаимодействия со state'ом, полный контроль над запуском рендринга компанента. И в целом, хочется большей прозрачности в том что происходит. Буду внимательно следить за развитием вашего проекта! Автору респект и удачи!
1) Какая версия .NET может использоваться в рамках проекта под .NET nanoFramework? Т.е. можно ли использовать .NET5 / C# 9.0?
2) Я так понимаю, Microsoft не имеет никакого отношения к .NET nanoFramework, верно? Если так, то есть ли у Microsoft работоспособные/перспективные альтернативы?
Не пинайте если вопросы звучат глупо, я пока совсем не в теме.
И соглашусь с комментариями, было бы ещё интересно посмотреть бенчмарки. Ждём продолжения…
Отличная статья. С одной стороны, и так очевидно, что последний .NET Core должен быть быстрее всех прошлых версий, в том числе при работе с коллекциями. Но теперь есть пруфы и цифры. Думаю, автор сэкономил многим интересующимся людям несколько вечеров.
Но данный товарищ считает себя умнее компилятора и предлагает лепить везде принудительное встраивание.
Я даже не знаю, что на это ответить.
:-)
В разделе про Inlining, в принципе нет никаких советов и рекомендаций. Я как автор, ещё не до конца сформировал своё личное отношение к принудительному встраиванию. Как раз поэтому в статье описан лишь сам механизм, сама возможность. Всё остальное вы додумали. И на основе своих фантазий обвинили человека, вам должно быть стыдно.
Для времени, когда был актуален .NET Framework 2.0, скорее всего, всё именно так и было. Но сейчас, sealed класс с виртуальным методом даже не скомпилируется (код ошибки CS0549). Поэтому сейчас такой оптимизации нет. Лично для меня, такое поведение было ожидаемым.
Тем не менее, как раз ваш пример и подтверждает основной посыл, заложенный в 9-ом разделе. Теоретически, любое уточняющее ключевое слово может улучшить производительность, если не сегодня так завтра.
1) Отображать только 4 стоблца: Method, N, Mean, Median, Allocated.
2) Изменить цвета строк, Цвет групп запуска должен чередоваться, например белого и серого, чтоб не сливались. А метод, с наименьшими значениями по 3-м столбцам (Mean, Median, Allocated) — выделять цветом.
Примерно пол года назад, пробовал реализовать вышеописанное стандартными, через конфигурации. Не помню, во что именно упёрся, но пришлось написать свой конвертер таблицы результатов. Код конвертора получился «грязным», но зато таблицу результатов анализировать стало намного удобнее и приятнее. Картинки с бечмарками из поста как раз и иллюстрируют отображение, которое хотелось бы получить через конфигурацию.
Если вы знаете, как реализовать вышеописанное, буду очень благодарен.
Ссылку на оригинальный пост Microsoft не нашёл. Лет 5 назад попадалась статья с рекомендациями, когда нужно использовать Dictionaty. Цифра условная (для Capacity по умолчанию, с каким-нибудь простым ключом, типа int). Основной смысл 6-го раздела в том, что на очень малом кол-ве элементов, Dictionary результата не даст, так же как и с малым соотношением добавлений к поиску в рамках критичного кода.
KvanTTT, спасибо за информативный комментарий! +1, именно такой фидбек я очень люблю! Про выравнивание enum'ов не знал, это не противоречит статье, однако с этой точки зрения я даже не оценивал.
А вот по рекомендациям Игоря Лабутина не всё так очевидно. Возможно, в его докладе фигурировала более старая версия .NET. Или наоборот, его доклад был по .NET Core 3 Preview. Или иная причина расхождения результатов.
Если запустить простой бенчарк, то по времени выполнения мы получим эквивалентный результат, нельзя выявить победителя. А вот по выделению памяти ToArray стабильно расходует меньше.
Всё верно! Но так обычно не делают — небезопасно. Например, в данном случае connceton к БД может быть закрыт до того, как данные реально попадут в слой представления. И это не единственная причина. Нельзя представлению никак влиять на БД. В случае возврата IQueryable объекта, такая возможность есть.
Упомянутый вами «Утомленные солнцем 2» очень достойное кино.
Не стоит негодование по поводу Михалковской инициотивы нолага на болванки перекладывать на его фильмы.
Вклад Михалкова в современное русское кино сложно переоценить.
В вашем бенчмарке ещё не хватает обычного Dictionary. Было бы интересно сравнить ещё и с ним.
Я - Fullstack, но почти 7 последних лет работал чисто с Backand'ом. Сейчас возвращаюсь во Frontend. Немного шокирован как всё поменялось за эти годы. Месяц работаю с React'ом и вот у меня ровно те же мысли что и у автора! Хочу более простого/примитивного взаимодействия со state'ом, полный контроль над запуском рендринга компанента. И в целом, хочется большей прозрачности в том что происходит. Буду внимательно следить за развитием вашего проекта! Автору респект и удачи!
Житейский вопрос автору поста: какой моделью телефона/фотоаппарата сделаны иллюстрации я посту? Очень цвета насыщенные.
В абзаце с заголовком "Что такое Bento UI?" нет определения что такое Bento UI.
В WindowsXP был очень лёгкий и удобный просмотрщик изображений. С удовольствием бы им пользовался в 10-ке.
2) Я так понимаю, Microsoft не имеет никакого отношения к .NET nanoFramework, верно? Если так, то есть ли у Microsoft работоспособные/перспективные альтернативы?
Не пинайте если вопросы звучат глупо, я пока совсем не в теме.
И соглашусь с комментариями, было бы ещё интересно посмотреть бенчмарки. Ждём продолжения…
Я даже не знаю, что на это ответить.
:-)
В разделе про Inlining, в принципе нет никаких советов и рекомендаций. Я как автор, ещё не до конца сформировал своё личное отношение к принудительному встраиванию. Как раз поэтому в статье описан лишь сам механизм, сама возможность. Всё остальное вы додумали. И на основе своих фантазий обвинили человека, вам должно быть стыдно.
Тем не менее, как раз ваш пример и подтверждает основной посыл, заложенный в 9-ом разделе. Теоретически, любое уточняющее ключевое слово может улучшить производительность, если не сегодня так завтра.
2) Изменить цвета строк, Цвет групп запуска должен чередоваться, например белого и серого, чтоб не сливались. А метод, с наименьшими значениями по 3-м столбцам (Mean, Median, Allocated) — выделять цветом.
Примерно пол года назад, пробовал реализовать вышеописанное стандартными, через конфигурации. Не помню, во что именно упёрся, но пришлось написать свой конвертер таблицы результатов. Код конвертора получился «грязным», но зато таблицу результатов анализировать стало намного удобнее и приятнее. Картинки с бечмарками из поста как раз и иллюстрируют отображение, которое хотелось бы получить через конфигурацию.
Если вы знаете, как реализовать вышеописанное, буду очень благодарен.
Не забудьте поделиться своими результатами запуска.
А вот по рекомендациям Игоря Лабутина не всё так очевидно. Возможно, в его докладе фигурировала более старая версия .NET. Или наоборот, его доклад был по .NET Core 3 Preview. Или иная причина расхождения результатов.
Если запустить простой бенчарк, то по времени выполнения мы получим эквивалентный результат, нельзя выявить победителя. А вот по выделению памяти ToArray стабильно расходует меньше.
Почему вас удивляет то, что я считаю культовыми фильмы «Сибирский цирюльник», «Утомлённые солнцем 1/2»?
Если бы я сказал что считаю шедевром “Самый лучший фильм” у вас наверное таких вопросов не было бы…
Минусуйте сколько хотите мне кармы не жалко.
Не стоит негодование по поводу Михалковской инициотивы нолага на болванки перекладывать на его фильмы.
Вклад Михалкова в современное русское кино сложно переоценить.