【问题标题】:How to calculate execution time using java or C#如何使用 java 或 C# 计算执行时间
【发布时间】:2020-04-28 19:01:42
【问题描述】:

我正在尝试编写一个程序来计算执行时间。如果我在编辑器中并排放置两个单独的代码,它会告诉我哪些代码将花费更少的时间。我已经学习了数据结构和时间复杂度,但我不知道如何在上述项目中使用 java 或 C# 来实现它。 我找不到任何链接。任何建议。

谢谢

【问题讨论】:

  • 执行时间取决于输入、特定的软件版本,通常还有一些随机因素(如运行的其他进程)。
  • 我认为您正在混合“时间复杂性”和“执行时间”。它们是不相同的。仅仅因为两个代码样本都是 O(n),这并不意味着它们将执行同样长的时间。更糟糕的是:根据输入的大小,一个代码示例可能比另一个执行得更快。所以,甚至不会有一个笼统的“A 比 B 快”。

标签: java c# data-structures time-complexity


【解决方案1】:

我认为您可以使用的解决方案是计算执行代码所需的时间。 在java中: 这里有一个链接会告诉你如何计时异常:https://howtodoinjava.com/java/date-time/execution-elapsed-time/

在 C# 中: 这是一个链接:https://www.tutorialsteacher.com/articles/how-to-calculate-code-execution-time-in-csharp

您可以计算执行时间,然后您可以比较数字。

【讨论】:

  • 您所描述的将是一个基准。我从这个问题中了解到,OP 希望能够预测竞争代码示例的相对运行时间。
  • @Fildor:问题是通常没有明确的赢家。例如,一些二次排序算法在 sorted 输入上运行线性,而对于 n log n 变体,它有时甚至可以在 sorted 上采用 n log n输入。这在某种程度上与没有免费的午餐定理有关:en.wikipedia.org/wiki/No_free_lunch_theorem
  • 正确。我只是指出,这个答案可能不是 OP 正在寻找的——考虑到问题中描述的要求,我怀疑它甚至是可行的。 @WillemVanOnsem
  • @Fildor:不,问题是无法确定的(因为否则可以解决停机问题),即使您只考虑最坏的情况。因此,尽管您可以构建(简单)函数能够做到这一点的算法,但您可以(从根本上)不为任意函数这样做。此外,对于更复杂的情况,通常需要多年的研究才能在时间复杂度方面找到一个合理的界限,所以这是不可能的。
  • 我同意,@WillemVanOnsem。
猜你喜欢
  • 1970-01-01
  • 2010-10-26
  • 2013-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多