【问题标题】:Possible way to find how long system call takes?查找系统调用需要多长时间的可能方法?
【发布时间】:2017-09-05 19:40:16
【问题描述】:

有什么方法可以找到系统调用的早期时间。系统调用需要多长时间例如:

 system(smbtree);

我怎样才能知道上面的系统调用需要多长时间才能显示等待时间?

我可以使用time() 计算执行时间,但有什么方法可以尽早找到以便我可以倒计时或等待时间?

【问题讨论】:

  • 这就像看到了未来。您无法知道 X 需要多长时间才能执行 X,X 操作必须将进度传达回才能显示准确的进度。
  • 一旦我们解决了停机问题,我们应该也可以编写一个可以做到这一点的函数:)

标签: c++ linux time system


【解决方案1】:

您必须先提前计算执行时间,因为它需要多长时间取决于运行它的机器。

【讨论】:

  • 这取决于更多。
  • @BoundaryImposition 那么我说的有什么问题吗?仅仅因为它依赖于更多的东西并不能说明它所运行的机器是不那么真实的因素之一。
【解决方案2】:

你不能。

根本无法提前知道某个任意 shell 调用需要多长时间才能完成。不仅每次调用都不同,而且不同的计算机在不同的操作系统、不同的处理器和不同的温度下运行不同数量的进程,执行任务所需的时间也不同。

天真地,您能做的最好的事情就是根据经验测试得出一些模糊的估计(例如,“我的 shell 脚本通常需要大约 5 秒钟才能在我测试过的任何地方运行”)并希望这足够接近现实。确保编写代码以支持检查和/或更改估算,因为它通常会这样做。

一个适当的解决方案将涉及第三方进程本身在调用进程进行时直接向调用进程提供状态信息。

【讨论】:

    猜你喜欢
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多