是否有任何编程功能可以自动检测计算重复?

时间:2012-11-29 17:34:55

标签: automation computation

我是编程的新手,拿着麻省理工学院的6.00。在观看Dynamic Programming讲座时,我想到了一个简单的问题:是否有任何内置功能(一般用于计算机)来检测重复性任务并进行补偿?

我意识到这很模糊。我在爷爷的电脑上工作,因为他一直在抱怨它很慢。实际上,它会一次延迟15秒,等待程序打开等。当我升级RAM时,问题就消失了。因此,如果计算机一直不得不将页面输入和页面输出写入磁盘,为什么它不会刚刚弹出一条暗示RAM升级的消息呢?这样可以节省很多时间。

计算机擅长快速执行任务,但代码速度慢可能很慢。这可以自动化吗?这甚至是一个合理的问题吗?

2 个答案:

答案 0 :(得分:0)

在示例中,您描述的代码并不慢,因为它正在读取/写入磁盘。它很慢,因为它实际上并没有做任何事情,而是等待操作系统进出磁盘。

此外,RAM升级并不总是频繁分页的解决方案(比如错误的程序泄漏内存或其他东西)。

在一般意义上,操作系统无法检测到所有可能存在的问题并建议解决方案。这实际上是Halting Problem的变体。

答案 1 :(得分:0)

通常情况下,计算机无法知道缓慢是因为它运行的操作是否需要花费很长时间才能完成,或者是否花费的时间比实际应用的时间长。

此外,即使你已经发现手术很慢,但要确定手术速度慢的确切原因更加困难。有时这是因为你需要更多RAM,其他时候因为网络速度慢,磁盘速度慢或CPU速度慢。如果检查程序在运行它的同一台机器内运行,那就更难了,因为它本身也经历了缓慢。

然而,在某些有限的情况下,有几件事情可以做。许多流行的操作系统(例如Windows,Linux,Android)可以检测到对用户输入的慢响应,并且可以提供更多时间或强制关闭应用程序(Android)或绘制灰度(Linux)中的无响应窗口或蓝色色调(Windows),如果应用程序在某段时间内未能响应用户输入。