【问题标题】:Does runtime of an algorithm depends on processor?算法的运行时间是否取决于处理器?
【发布时间】:2017-07-04 05:43:45
【问题描述】:

我已经给出了一个查找所有 N 以下素数的项目。为此,测试用例超时条件是 [TestMethod, Timeout(1000)],这意味着我们的算法应该在

当我在 i5 处理器上运行相同的程序时,它运行成功,但是当我在 i3 上运行它时,测试用例因超时错误而失败。

算法的运行时间是否取决于处理器?

影响算法运行时间的因素有哪些?

【问题讨论】:

  • 时间复杂度是一种理论结构,仅取决于算法的实现。在实践中,处理器可能会实现一些可以人为降低时间复杂度的功能(例如缓存)。
  • 算法的复杂度,例如作为输入大小的函数,它简单地告诉我们运行时间或空间需求如何扩展。实际运行时间可能因使用的处理器/环境而异。
  • 我不会说它降低了时间复杂度,它可以减少各种操作的一些时间常数/比例因子(而且“有点”通常是十倍或更多) .
  • 那是公平的,我并没有说得那么好。我认为问题在于“在处理器上运行的算法”,这有点滥用词汇。我会留下我的评论,因为讨论可能对提问者很有价值,并感谢您的澄清!
  • 对于您更新的问题:程序的运行时间当然取决于处理器。为什么会有人购买新处理器而不是坚持使用 90 年代 10 美元的处理器?影响运行时间的因素有很多。对于 SO 格式而言,将它们全部列出来过于宽泛。

标签: algorithm processor


【解决方案1】:

算法的运行时间是否取决于处理器?

当然,执行时间取决于处理器。这就是为什么像英特尔这样的公司花费大量资金来生产越来越快的处理器。

例如:如果算法包含 100 万次操作,而 CPU 每秒能够执行 100 万次操作,则执行该算法需要 1 秒。另一方面,如果处理器性能为每秒 1000 万次操作,那么该算法只需要 0.1 秒。这是一个非常简化的示例,因为并非每条指令都花费相同的时间,并且涉及更多因素(缓存,内存带宽,SSE 等特殊指令),但它说明了一般观点:更快的处理器在更短的时间内执行代码 - 这就是更快的意义处理器。

注意:这与time complexity 完全无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 2017-09-15
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多