Сделай Сам Свою Работу на 5

Debug Diagnostic Tool 1.1





Программа для диагностики системы с целью выяснения причин нестабильной работы приложений и компонентов ОС. Debug Diagnostic Tool может помочь в выяснении причин зависания программ, падения производительности системы, утечки и фрагментации оперативной памяти, остановки из-за ошибки пользовательских приложений. Для определения проблем в программе используются два метода: снятие образа оперативной памяти с последующим анализом и подключение к запущенной программе специальной библиотеки, которая ведет наблюдение за распределением памяти. Кроме того, здесь присутствуют отладочные скрипты для диагностики работы Internet Information Services (IIS) приложений и тестирования работы COM+ компонента и других, связанных с ним технологий Microsoft..Net Reflector. Единственный существующий браузер классов .NET компонентов. Эта уникальная утилита позволяет просматривать мета данные, IL-инструкции, ресурсы и XML документацию, сохраненные в .NET сборках. Более того .NET Reflector является отличным IL-декомпилятором, который значительно проще и удобнее в использовании, нежели Microsoft'овский IL Disassembler. Приложение отлично позволяет декомпилировать код сборок .NET (exe, dll) в код IL, C#, VB .NET, и в другие языки (существует так же поддержка множества plugin'ов). Например, полезный плагин для рефлектора – он генерирует проекты для Visual Studio из сборки, загруженной в рефлектор, думаю переоценить насколько это полезно очень сложно. Другой полезный плагин генерирует граф зависимостей между сборками



Рис. 16 Применение средства дизассемблирования .Net Reflector


Рис. 17 Плагин Graph для .Net Reflector

Лекция № 15-16. С# и С++ в приложениях систем управления.С# и С++ в приложениях систем управления. Управляемый и не управляемый код. Преимущества и недостатки неуправляемого кода. Управление памятью, сборщик мусора в C#. Обработка исключений.

Программный код, выполняющийся под управлением CLR, называется управляемым кодом. Программный код, выполняющийся вне среды выполнения CLR, называется неуправляемым кодом. Представителями неуправляемого программного кода являются:

  • функции Win32 API;
  • компоненты COM;
  • интерфейсы ActiveX.

.NET появилась не первой средой разработки. Вновь разрабатываемый управляемый код вынужден взаимодействовать с существующим неуправляемым программным кодом. Поэтому на платформе .NET предусмотрены различные сценарии установления взаимодействия между управляемым и неуправляемым кодами. Microsoft .NET Framework обеспечивает взаимодействие с компонентами COM, службами COM+, внешними библиотеками типов и многими службами операционной системы.CLR скрывает имеющиеся в управляемой и неуправляемой моделях различия. Проблемы, связанные с типами данных, механизмами обработки ошибок и т. д. в управляемой и неуправляемой моделях, решаются CLR "незаметно" как для вызывающей стороны (клиента), так и для вызываемой стороны (серверA. Таким образом, организация взаимодействия между управляемым и неуправляемым кодом выглядит проще, чем могло быть.Реализованные в .NET языки программирования позволяют создавать управляемый код, который может взаимодействовать с неуправляемыми библиотеками Win32 и компонентами на основе модели компонентных объектов Microsoft (COM).
Язык программирования C++ .NET является единственным, который позволяет создавать как управляемый, так и неуправляемый код. Это дает возможность не только использовать неуправляемый библиотечный код, но и смешивать управляемый и неуправляемый коды в одном приложении.



 

Базовые различия

При работе с управляемым кодом программист размещает объекты в управляемой динамически распределяемой области памяти, используя оператор new (создать), причем освобождать их с помощью соответствующих операторов delete (удалить) не нужно. Это освобождает программиста от заботы об утечках памяти, и позволяет сосредоточить основное внимание на важных и полезных задачах, таких как более точная реализация проекта программы, что повышает производительность программирования и качество программного обеспечения.
Неуправляемый код C++ .NET должен самостоятельно управлять динамически распределяемой областью в памяти традиционными способами C++, используя операторы new (создать) и delete (удалить). Так как одним из наиболее общих недостатков в программах на C++ является ужасающая утечка памяти, поэтому использование управляемого кода C++ .NET может оказать очень положительное воздействие на многие разработки программного обеспечения.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.