代码之家  ›  专栏  ›  技术社区  ›  FelixMarcus

在越狱的iPhone5上使用top选择单个进程

  •  1
  • FelixMarcus  · 技术社区  · 10 年前

    所以我需要打印一个单独的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顶部的标志似乎略有不同,但我找不到具体的描述。有人能告诉我如何只打印一个流程的数据吗?

    谢谢

    1 回复  |  直到 10 年前
        1
  •  0
  •   Nate    10 年前

    如果您想找到正确的命令行开关 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 不起作用,因为它连续运行。您可能只需要一个值,然后应该让 顶部 出口

    注: 您可能需要安装 grep 来自Cydia。只需搜索 希腊语 。这是一个由Saurik出版的软件包。

    警告: 因为你正在使用 希腊语 要搜索正确的PID,可能需要让解析日志文件的代码验证其日志输入。正确的输出将在文件中,但如果数字PID与任何其他行匹配,您也将获得其他数据。例如,如果您搜索的PID恰好也是另一个进程使用的MB内存数,那么您将获得额外的输出行。但是,文件中的第一列始终是PID。