我正在针对 IoT Windows Forms 应用程序运行 dotMemory 命令行,该应用程序需要在自定义设备上进行数小时的测试。
我的目的是在应用程序在设备上运行时按时间获取内存快照。例如,如果测试设计为 24 小时运行,我想每小时获取 10 秒的内存快照。
我找到了两种方法:
- 运行 dotMemory.exe 并按时间获取独立快照,通过使用
schtasks
来安排每次执行; attach
使用and参数运行 dotMemorytrigger
并获取单个文件中的所有快照。
第一个场景已经为我准备好了,但很容易看出,第二个场景在收集数据后更适合进一步分析。
我可以使用如下命令启动它:
C:\dotMemory\dotMemory.exe attach $processId --trigger-on-activation --trigger-timer=10s --trigger-max-snapshots=24 --trigger-delay=3600s --save-to-dir=c:\dotMemory\Snapshots
我的问题来了:
- 如何在没有任何人工干预的情况下使命令/进程在达到最大快照值后停止?
参考:https ://www.jetbrains.com/help/dotmemory/Working_with_dotMemory_Command-Line_Profiler.html