Рубрика «dotnet» - 4

Сегодня мы поговорим о производительности в C#, о способах прокачать её до неузнаваемости. Задача этой статьи — продемонстрировать такие способы повышения производительности, которые, при необходимости, вы смогли бы использовать самостоятельно. Однако эти методики не являются универсальными — вы не сможете использовать их в качестве общего решения любой задачи. Они хороши при наличии вполне конкретных сценариев использования, о которых пойдет речь ниже.

В качестве прототипа статьи был выбран доклад Федерико Луиса, основателя компании Corvalius (они занимаются R&D). Работая над движком базы данных для одного из клиентов, они посвятили около четырёх лет задачам оптимизации. Такое количество времени требуется для того, чтобы применить разного рода техники и достичь хороших показателей оптимизации. Требуется выявить все проблемы и узкие места, проследить поведение софта в соответствии со всеми имеющимися метриками и так далее. Примеры из этой статьи основаны на работе над RavenDB 4.0 (известная NoSQL база для .NET), которую компания Федерико тюнила до уровня наносекунд во всевозможных сложных кейсах.

Все примеры, которые встретятся вам в ходе рассказа (плюс некоторые дополнительные), доступны в специальном репозитории на GitHub.

Осторожно, трафик! В этом посте присутствует огромное количество картинок — слайдов и скриншотов с видео в формате 720p. На слайдах присутствует важный для понимания статьи код.

Читать полностью »

.NET Core становится всё более и более зрелой платформой. На нём уже достаточно комфортно можно вести разработку, используя тот же Rider или VS Code.

Однако, и там не всё гладко. Например, отладка кода на .NET Core 2 заработала только в Rider 2017.2, который вышел, буквально на днях (были ещё EAP сборки). Приходилось пользоваться VS Code. В нём работает отладка, однако, чтобы заработал запуск тестов надо руками ставить beta-версию расширения для C#.

Я думаю, суть ясна, что инструментальная поддержка пока сильно далека от аналогичной при разработке под Windows.

Для некоторых вещей пока нету готовых средств. Например, для профилирования.

Из источников, которые доступны в сети, самыми содержательными, по моему мнению, на текущий момент являются статьи Саши Гольдштейна:

Однако, готового рецепта по поиску утечки памяти мне найти не удалось. Поэтому я решил описать найденный мной способ.

Читать полностью »

Ищем ошибки в игровом движке Xenko - 1

Движков с открытым исходным кодом, написанных на C++, куда больше, чем аналогичных движков, написанных на C#. Но есть исключения. Xenko – один из движков, написанных на C# и имеющих открытый исходный код. О том, что же интересного удалось найти в коде этого движка, будет рассказано в этой статье.
Читать полностью »

в 18:59, , рубрики: .net, autocad, CAD/CAM, dotnet, RTree

Когда мы программируем под AutoCAD – то перед нами часто возникает задача быстрого пространственного поиска по набору примитивов. Лучше всего подобный поиск реализуется с помощью R-дерева.

Для примера будем парсить «рисованные» таблицы (это которые нарисованы отрезками и текстом) и создавать по ним ACAD-таблицы (это которые создаются командой _table)

Читать полностью »

Единорог в космосе: проверяем исходный код 'Space Engineers' - 1

Как вы уже поняли из заголовка, речь в статье будет идти о подозрительных местах, найденных в исходном коде 'Space Engineers'. Но формат статьи несколько отличается от остальных. Помимо информации о проекте, обзора некоторых найденных подозрительных мест и ошибок, а также способов их исправления, я включил в текст небольшой раздел о правильном сценарии использования статического анализатора. Настоятельно рекомендую ознакомиться с ним, так как многие разработчики не знают или просто не задумываются о том, как правильно использовать инструменты этого класса. В результате инструменты статического анализа используются на порядок менее эффективно, чем могли бы.
Читать полностью »

Проверяем исходный код набора C#-.NET компонентов от Sony - 1

Как некоторые из вас помнят — недавно мы выпустили версию анализатора, поддерживающую проверку C#-кода. С появлением возможности анализа проверки проектов, написанных на C#, открывается новый простор для творчества. Об анализе одного из таких проектов, разработанного компанией Sony Computer Entertainment (SCEI), и пойдёт речь в данной статье.
Читать полностью »

Ищем ошибки в MonoDevelop - 1

В жизни анализатора PVS-Studio состоялось важное событие — в последней версии была добавлена возможность проверки кода, написанного на C#. Являясь одним из разработчиков данного анализатора, я просто не мог пройти мимо, не проверив какой-нибудь проект. Понятно, что мало кому будет интересно читать про проверку маленьких и неизвестных проектов, поэтому нужно было выбрать что-то известное, и выбор пал на MonoDevelop.
Читать полностью »

Новогодняя проверка .NET Core Libraries (CoreFX) - 1Около года назад Microsoft выложила в открытый доступ исходный код таких проектов, как CoreCLR и CoreFX. Последний проект до недавнего времени не был нам интересен, потому что написан на языке C#, а не C++. Но с выходом новой версии PVS-Studio 6.00, поддерживающей проекты и на языке программирования C#, я решил вернуться к CoreFX и написать статью.

Введение

.NET Core это модульная реализация библиотек и среды выполнения, которая включает подмножество .NET Framework. .NET Core состоит из набора библиотек, называемых «CoreFX» и небольшой оптимизированной рабочей среды «CoreCLR».

.NET Core распространяется с открытым исходным кодом, который доступен на GitHub:

Это крупные продукты от Microsoft, содержащие качественный исходный код, но подозрительные участки кода всё равно можно найти.

О проверке CoreCLR можно прочитать в статье "PVS-Studio: 25 подозрительных фрагментов кода из CoreCLR".

Проект CoreFX, о котором подойдёт речь в статье, проверялся с помощью статического анализатора PVS-Studio 6.00, который теперь поддерживает и C#!
Читать полностью »

Всем привет! У нас для вас хорошие новости: доступны для скачивания новые версии ReSharper 9.0, dotCover 3.0, dotTrace 6.0, dotMemory 4.2 и dotPeek 1.3.

Все эти инструменты теперь используют один общий инсталлятор, так что можно скачать ReSharper 9 и прямо в инсталляторе выбрать совместимые версии всех .NET тулов, которые хочется установить.

Доступны для скачивания ReSharper 9, dotTrace 6, dotCover 3, dotMemory 4.2 и dotPeek 1.3 - 1

Читать полностью »

8 декабря мы проведём в Москве большую .NET-конференцию .NEXT 2014 Moscow. Мы получили множество коментов в соцсетях и на хабре, а так же несколько писем с вопросами о конфе. Чтобы не отвечать несколько раз, я собрал наиболее часто задаваемые вопросы здесь, в одном месте. Я попробовал сгруппировать эти вопросы по темам, и в результате получился полноценный FAQ.

Q: Зачем нужна еще одна .NET-конференция?

A: Cовременные конференции для программистов грешат всякими аджайлами, скрамами и прочими стартапами и клаудами, и поэтому мы с JetBrains решили провести конференцию для .NET-программистов, состоящую только из докладов на технические темы.

F.A.Q. по конференции .NEXT 2014 Moscow - 1

Q: Где и когда она проходит?

A: Москва, пн, 8 декабря, гостиница «Рэдиссон Славянская», ст.м. Киевская. Начало — в 10:00, окончание — в 20:00.

Q: Кто ваши основные конкуренты?

A: DevCon от Microsoft, DotNetConf от Александра Бындю, Go# от Николая Евдокимова из ITHH.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js