所以我需要打印出单个iphone应用程序的内存使用情况进行浸泡测试。如果有一个存储的日志监视时间的使用情况(在自动化测试中定期运行),这将大有帮助。
为此,我越狱了iPhone并安装了移动终端。我的计划是使用top -p
过滤掉其余的进程,然后将输出输出到日志文件。然后,数据可以在以后的日期回收和分析。
不幸的是,当我运行PID 616时:
top -p 616
那么我得到的只是多次打印出来的616:
Processes: 77 total, 1 running, 5 stuck, 71 sleeping... 335 threads 02:38:09
Load Avg: 1.23, 0.93, 0.90 CPU usage: 3.33% user, 0.00% sys, 96.67% idle
SharedLibs: num = 0, resident = 0 code, 0 data, 0 linkedit.
MemRegions: num = 0, resident = 0 + 0 private, 0 shared.
PhysMem: 108M wired, 152M active, 39M inactive, 497M used, 519M free.
VM: 28G + 0 904390(0) pageins, 32065(0) pageouts
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
616
616
616
616
616
616
616
616
616
616
616
616
616
616
616
616
616
616
我看了一下,似乎iphone顶部的标志略有不同,但我找不到具体的描述。谁能告诉我如何打印一个过程的数据?
谢谢。
如果您想找到top
的正确命令行开关,或者其他任何东西,请尝试这样做:
>> top --help
然而,你会看到,在越狱的iOS版本中不支持PID (-p)开关。
但是,如果你使用这个:
>> top -l 2 | grep 616
它应该给你你所需要的(在第二个行输出)。-l
开关给你N个样本。你至少需要2个,因为top将CPU%计算为样本之间的增量,所以只有1个样本,它总是0%。但是,如果您只需要内存使用,您可能可以使用:
>> top -l 1 | grep 616
仅使用top | grep 616
不工作,因为它连续运行。您可能只需要一个值,然后应该让top
退出。
注意:你可能也需要从Cydia安装grep
。只要搜索grep
。这是Saurik发布的一个包。
警告:因为您正在使用grep
来搜索正确的PID,您可能需要让解析日志文件的代码验证其日志输入。正确的输出将在文件中,但是如果数字PID与任何其他行匹配,也将获得额外的数据。例如,如果您搜索的PID恰好也是另一个进程使用的内存的MB数,那么您将获得额外的输出行。但是,文件中的第一列始终是PID。