2012-11-29 54 views
1

我是新手編程,麻省理工學院6.00。在觀看Dynamic Programming講座時,我發現一個簡單的問題:是否有任何內置功能(一般用於計算機)檢測重複性任務並進行補償?是否有自動檢測計算重複的編程功能?

我意識到這很模糊。我正在對祖父的電腦工作,因爲他一直在抱怨速度很慢。事實上,它會一直滯後15秒,等待程序打開等等。當我升級內存時,問題就消失了。所以如果計算機不斷地寫入頁面和頁面到磁盤,爲什麼它不能彈出一條提示RAM升級的消息?這將節省相當多的時間。

計算機擅長快速執行任務,但慢速代碼可能會很慢。這可以自動化嗎?這是一個合法的問題嗎?

回答

0

在這個例子中,你描述的代碼並不慢,因爲它正在讀/寫磁盤。這很慢,因爲它實際上並沒有做任何事情,而是等待操作系統頁面進出磁盤。

此外,內存升級並不總是頻繁分頁的解決方案(比如漏洞百出的程序泄漏內存或其他東西)。

在操作系統的一般意義上,檢測所有可能的問題並提出解決方案是不可能的。這實際上是Halting Problem的變體。

0

計算機一般不可能知道緩慢是否是因爲它運行的操作基本上需要很長時間才能完成,或者它是否需要比實際應用更多的時間。

此外,即使您已經確定手術很慢,但診斷慢的確切原因甚至更難。有時候是因爲你需要更多的內存,其他時間是因爲網絡速度慢,磁盤速度慢或者CPU速度太慢。如果檢查器運行在運行的同一臺機器上,那麼這更加困難,因爲它本身也會遇到緩慢。

但是在某些有限的情況下可以做幾件事情。許多流行的操作系統(例如Windows,Linux,Android)可以檢測到對用戶輸入的響應速度慢,並且會提供更多的時間或強制關閉應用程序(Android)或者在灰度(Linux)或藍色色調(Windows),如果應用程序在一定時間內未能響應用戶輸入。

相關問題