Сборщик мусора.
В этой и последующих статьях мы займемся исследованием сборщика мусора в .NET (Garbage Collector, GC), одного из основных механизмов,…
В этой и последующих статьях мы займемся исследованием сборщика мусора в .NET (Garbage Collector, GC), одного из основных механизмов,…
Существует множество типов коллекций, хорошо известных в информатике, но не попавших в .NET Framework. Некоторые из них получили весьма…
В состав .NET Framework входит большое число коллекций, но мы не ставим целью рассмотреть каждую из них в этой…
Едва ли можно встретить программу, не использующую какую-нибудь коллекцию, такую как List<T> или Dictionary<K,V>. Крупные приложения могут одновременно использовать…
Теперь, получив представление об особенностях размещения ссылочных типов в памяти и назначениях полей в заголовке объекта, можно перейти к…
В этой и последующих статьях рассказывается о внутреннем устройстве типов .NET, как типы значений и ссылочные типы размещаются в…
Некоторые проблемы и вопросы производительности могут быть решены только с применением ручных способов измерения. Например, вам может потребоваться обосновать…
Ранее мы уже рассмотрели вопросы профилирования нагрузки на CPU, времени и памяти. Именно эти характеристики являются наиболее важными с…
Профилировщики этого типа выявляют операции выделения памяти в приложении и сообщают, какие методы выделяют больше всего памяти, какого типа…
Счетчики производительности и механизм ETW, рассмотренные ранее, позволяют получить массу любопытной информации о производительности приложений для Windows, однако часто…
Механизм трассировки событий для Windows (Event Tracing for Windows, ETW) – это высокопроизводительный фреймворк регистрации событий, встроенный в Windows….
Наши статьи по оптимизации приложений посвящены вопросам повышения производительности приложений для .NET. Следует понимать, что нельзя улучшить какие-либо характеристики,…
Прежде чем приступать к исследованию проблем производительности в мире .NET Framework, необходимо понять, какие характеристики производительности существуют и в…
Что, если необходимо создать собственный динамический объект? Для этого на выбор доступно два варианта: наследование от DynamicObject либо использование…
Представьте себе, что к приложению можно добавить возможности обработки сценариев. При этом допускается передача значений в сценарий и из…
Теперь давайте рассмотрим другое полезное применение ключевого слова dynamic — в контексте проекта взаимодействия с COM. Если нет опыта…
Теперь, когда прояснилась суть “динамических данных”, давайте исследуем, как они обрабатываются. В версии .NET 4.0 общеязыковая исполняющая среда (Common…
Вспомните, что неявно типизированные данные возможны только для локальных переменных в области определения члена. Ключевое слово var никогда не…
Ключевое слово var позволяет объявлять локальную переменную таким образом, что ее действительный тип данных определяется начальным присваиванием (это называется…
Процесс создания сложных .NET-приложений на CIL будет довольно “неблагодарным трудом”. С одной стороны, CIL представляет собой чрезвычайно выразительный язык…