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

混淆时间的输出

  •  0
  • Justin  · 技术社区  · 15 年前

    这个命令从MySQL中获取一些数据,然后对其进行操作。为什么“实时”的时间比“用户”的时间要高得多?

    >time ./command.rb
    
    real    45m45.457s
    user    3m36.478s
    sys     0m28.226s
    

    澄清-我了解真实、用户和系统输出之间的区别。然而,我对为什么会有如此大的差异感到困惑。我运行这个的机器几乎没有其他任何使用CPU的东西,而且我的命令中没有任何线程。它所做的就是获取数据。一个复杂的mysql语句是否会导致这种差距?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Aidan Cully    15 年前

    用户和系统报告CPU繁忙的时间。在网络或磁盘I/O等任何设备上阻塞CPU时,CPU都不会很忙。请尝试,例如“Time Sleep 1”或“Time dd if=/dev/zero of=/dev/null bs=1024 count=1000000”,以查看差异。第一个只是块,第二个将包括大量的CPU使用。

        2
  •  2
  •   Carl Smotricz    15 年前

    系统大部分时间都在等待磁盘旋转和磁头搜索。

    “用户”时间是CPU为您处理数字实际花费的时间。

        3
  •  1
  •   chaos    15 年前

    “real”时间是实际通过的挂钟时间量,“user”和“sys”时间是每类处理中用于作业的CPU时间量。为了让“实时”时间更高,你的工作可能会花很多时间等待资源或睡觉。

        4
  •  1
  •   Ape-inago    15 年前

    只是猜测一下,但是如果您是通过ssh连接查看结果,那么您可能大部分时间都在等待处理器加密发送到远程控制台的数据。