2016-05-19 4 views
1

Есть ли способы запуска dotMemory непосредственно из командной строки с аргументом? Я использовал как dotCover, так и dotTrace, и у них очень разные реализации для достижения этой цели (dotCover находится непосредственно из командной строки, а dotTrace - сгенерированная xml-конфигурация). Я видел dotMemoryUnit, но, похоже, он не принимает дополнительных аргументов, и я не нашел никакой другой информации о том, как это сделать.Запуск dotMemory из командной строки

+0

Что именно вы муравей делать? –

+0

@ Ed.ward Мы хотим dotMemory непосредственно из командной строки с аргументами, так как мы пытаемся автоматизировать некоторые анализы за ночь. – Ivanov

+0

Вы хотите запустить dotMemory, который начнет сеанс профилирования, или вы хотите получить моментальные снимки памяти в некоторые моменты времени или может быть что-то еще? –

ответ

0

dotMemory Unit

Если тесты, dotMemory блок может быть более подходящим для ваших нужд. Запустите dotMemoryUnit.exe -targetExecutable = «ваше приложение, которое запускает тесты», и ваше приложение будет запущено под профилировщиком. Подробнее о аргументах командной строки doMemoryUnit.exe вы найдете here.

В тесте можно назвать метод dotMemoryApi.SaveCollectedData, это позволит сэкономить рабочее пространство содержит все данные из один теста, но не спасет ничего, если нет памяти, расставшись снимки.

Standalone dotMemory

Существует обходной путь для dotMemory. Если вы запустите dotMemory.exe /p:path_to_xml_configuration.xml, он начнет и запустит профилирование автоматически. Примечание: эта точкаMemory удалит файл, переданный в/p ключ, поэтому сделайте его копию. Вы знакомы с конфигурацией dotTrace XML, так что вам нужно создать почти такую ​​же конфигурацию, но заменить

<Info type="PerformanceInfo"> 

узел с этим одним значением

<Info type="MemoryInfo"> 
    <CollectAllocations>...</CollectAllocations> 
</Info> 

CollectAllocations может быть EnabledPostponed - dotMemory не будет начать сбор данных отчислений немедленно, но можно включить его позже вручную или через API профилирования. Или EnabledImmediatly (да, с опечаткой) - будет собирать данные о распределении с самого начала, если запускаться в ручном режиме (не в профилировании API).

[EDIT]

dotMemory Инструменты командной строки

Новый бесплатный инструмент позволяет получать снимки с помощью командной строки

dotMemory.exe get-snapshot MyApp --save-to-dir=C:\Snapshots 

прочитать этот блог для деталей https://blog.jetbrains.com/dotnet/2017/05/16/dotmemory-command-line-tools/

+0

Wow thanks man! Это выглядит многообещающе. – Ivanov

+0

@ivanov dotMemory console runner выпущен с v. 2017.1https: //blog.jetbrains.com/dotnet/2017/05/16/dotmemory-command-line-tools/ –

Смежные вопросы