【问题标题】:total time taken by the program to execute basic operations程序执行基本操作所花费的总时间
【发布时间】:2012-12-05 11:24:54
【问题描述】:

我想知道程序执行所用的时间。
而且我不希望用户花时间提供输入。
只有时间进行基本操作。
就像我们需要比较两种算法的效率一样。

这样的基本操作
a+b
a-b
a*b
a/b
a<b
a>b
a=b

等等。 谢谢

【问题讨论】:

  • 对你有好处。你有什么问题?
  • 程序执行时间??
  • 使用秒表。 (愚蠢地回答愚蠢的问题)
  • 如果您不想提供帮助,请不要发表评论
  • @Ansul - 现代 PC 将能够在每个时钟周期(0.3 纳秒)执行 3-4 条这些指令。您将永远无法单独测量它们。

标签: c++ c algorithm time execution


【解决方案1】:

如果您想使用分析器,那么它可以充当穷人的分析器:

#include <stdio.h>
#include <time.h>

clock_t start = clock();
/* Code you want timed here */
printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC);

礼貌:Julienne Walker aka Narue

【讨论】:

    【解决方案2】:

    为什么不直接使用time。这会测量 CPU 使用率,因此不会考虑用户输入时间等。

    time 命令以给定的方式运行指定的程序命令 论据。命令完成后,时间将消息写入标准 提供有关此程序运行的计时统计信息时出错。这些 统计数据包括 (i) 调用和调用之间经过的实时时间 终止,(ii) 用户 CPU 时间(tms_utime 和 由 times(2)) 和 (iii) 返回的结构 tms 中的 tms_cutime 值 系统 CPU 时间(tms_stime 和 tms_cstime 值的总和 由 times(2)) 返回的 struct tms)

    【讨论】:

    • 它还给出了用户输入的时间
    • @AnshulGupta “(ii) 用户 CPU 时间(times(2) 返回的 struct tms 中的 tms_utime 和 tms_cutime 值的总和)”不包括程序停止等待的时间输入时。
    • @Anshul - 没有。正如 Pascal 所指出的,它将提供细分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    相关资源
    最近更新 更多