記憶是一種通過增加程序使用空間來優化程序速度的方法,它類似于記憶,但只適用于計算機。這種技術直接要求建立一個程序來記住函數的計算結果,并將結果存儲在緩存中。下一次調用該函數時,該程序可以從緩存中檢索計算結果,而...
記憶是一種通過增加程序使用空間來優化程序速度的方法,它類似于記憶,但只適用于計算機。這種技術直接要求建立一個程序來記住函數的計算結果,并將結果存儲在緩存中。下一次調用該函數時,該程序可以從緩存中檢索計算結果,而不是重做相同的計算。與強度降低不同,強度降低是基于相似的速度和空間權衡來加速機器的,記憶是可移植的,可以在許多機器上使用。手持式計算機用戶可能看不到它,但是程序總是在進行計算。當有人點擊程序上的某個按鈕或使用某個固有函數時,需要進行計算才能使其工作。通常情況下,用戶會多次使用同一個函數而不做任何更改。如果沒有記憶,即使程序只是執行了一個計算,它也需要這樣做同樣,這會使程序的速度比存儲結果時慢。計算的結果存儲在高速緩存內存區中。通過記憶,當用戶執行相同或相似的輸入時,程序將從緩存中提取而不是執行計算來得到答案。通過這樣做,程序節省了時間,并且變得優化和更快。輸入可能是相似的而不是完全相同的,所以有些計算可能不完全準確,但是,不精確性通常很小,不太可能導致錯誤。記憶技術本質上是一種權衡。所有程序都是在大小和時間限制下構建的。在這里,犧牲大小以提高速度。結果存儲在緩存中,所以程序需要更多的內存。內存量犧牲是非常小的,因為緩存可以存儲的結果數量是有限的,但是它仍然會增加空間開銷另一種類似但不可靠的折衷優化技術是強度縮減。強度縮減不會降低程序的強度,而是通過將程序分解為更弱、內存成本更低的函數來降低計算強度。例如,乘法比加法需要更大的處理時間,因此該公式將被改變,以允許更少的時間密集的過程。這種技術可以加快進程,但節省的時間可能不是所有的機器都看到的,它只節省編譯時間
-
發表于 2020-08-08 01:15
- 閱讀 ( 1522 )
- 分類:電腦網絡