有没有办法直接从带命令行的命令行运行dotMemory?我已经同时使用了dotCover和dotTrace,并且它们实现了这个实现有很大不同(dotCover直接来自命令行,而dotTrace需要生成的xml配置)。我见过dotMemoryUnit,但它似乎不接受其他参数,也没有找到任何其他有关如何执行此操作的信息。
答案 0 :(得分:0)
dotMemory Unit
如果您运行测试,dotMemory Unit可能更适合您的需求。运行dotMemoryUnit.exe -targetExecutable =“运行测试的应用程序”,您的应用程序将在分析器下启动。有关doMemoryUnit.exe命令行参数的更多详细信息,您可以找到here。
在你的测试中你可以调用dotMemoryApi.SaveCollectedData方法,它会保存一个工作区,其中包含来自一个测试的所有数据,但如果没有内存快照,则不会保存任何内容。
独立dotMemory
dotMemory有一种解决方法。如果运行dotMemory.exe /p:path_to_xml_configuration.xml,它将自动启动并运行分析。 注意:dotMemory将删除/ p键中传入的文件,因此请复制它。 您熟悉dotTrace xml配置,因此您需要创建几乎相同的配置但替换
<Info type="PerformanceInfo">
这个节点
<Info type="MemoryInfo">
<CollectAllocations>...</CollectAllocations>
</Info>
CollectAllocations值可以是EnabledPostponed - dotMemory不会立即开始收集分配数据,但可以稍后手动或通过分析API打开它。或者EnabledImmediatly(是的,有错字) - 如果在手动(不是在Profiling API)模式下运行,将从头开始收集分配数据。
<强> [编辑] 强>
dotMemory命令行工具
新的免费工具允许使用命令行
获取快照dotMemory.exe get-snapshot MyApp --save-to-dir=C:\Snapshots
阅读此博客文章了解详情 https://blog.jetbrains.com/dotnet/2017/05/16/dotmemory-command-line-tools/