是否有方法直接从带有参数的命令行运行dotMemory?我使用了dotCover和dotTrace,它们有非常不同的实现(dotCover直接来自命令行,而dotTrace需要生成的xml )。我已经看到了dotMemoryUnit,但是它似乎不接受其他的论点,我也没有找到任何关于如何做到这一点的其他信息。
发布于 2016-05-20 09:39:39
dotMemory单元
如果您运行测试,dotMemory单元可能更适合您的需要。运行dotMemoryUnit.exe -targetExecutable=“运行测试的应用程序”,您的应用程序将在分析器下启动。有关doMemoryUnit.exe命令行参数的更多细节,您可以找到这里。
在您的测试中,您可以调用dotMemoryApi.SaveCollectedData方法,它将保存包含来自one测试的所有数据的工作区,但是如果没有获得内存快照,则不会保存任何东西。
独立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 (是的,带有错误)-将收集分配数据从一开始,如果运行在手动(而不是在剖析API)模式。
编辑
dotMemory命令行工具
新的免费工具允许使用命令行获取快照。
dotMemory.exe get-snapshot MyApp --save-to-dir=C:\Snapshots阅读这篇博文获取详细信息https://blog.jetbrains.com/dotnet/2017/05/16/dotmemory-command-line-tools/
https://stackoverflow.com/questions/37331669
复制相似问题