热门问题
时间线
聊天
视角
時空權衡
来自维基百科,自由的百科全书
Remove ads
電腦科學中的時空權衡(英語:space–time trade off,又叫空間換時間)是指一個演算法或程式用增加空間使用量來換取時間減少的情況。這裏,空間指的是執行一個給定任務所消耗的數據儲存(主記憶體、硬碟等),而時間指的是執行一個給定任務所消耗的時間(計算時間或反應時間)。
歷史
在動物行為的早期階段,可以看到時空權衡的生物學用途。使用儲存的知識或將刺激反應編碼為DNA中的「本能」,可以避免在時間緊迫的情況下進行「計算」的需要。更具體到電腦,尋找表從最早期的作業系統開始就已經實現了。
權衡的類型
一個常見的情況是涉及尋找表的演算法:一個實現可以包含整個表,這減少了計算時間,但增加了所需的主記憶體量;或者它可以根據需要計算表項,增加計算時間,但減少主記憶體需求。
時空權衡可以應用於數據儲存的問題。如果數據未經壓縮就被儲存,它需要更多的空間,但訪問所需的時間要比數據被壓縮後儲存所需的時間少(因為壓縮數據減少了它所佔用的空間,但執行解壓縮演算法需要時間)。根據問題的具體實例,兩種方式都是實用的。也有一些罕見的情況是可以直接使用壓縮數據的,比如在壓縮點陣圖索引的情況下,使用壓縮的方式比不使用壓縮的方式更快。
只儲存向量圖的SVG原始碼,並在每次請求頁面時將其渲染為點陣圖圖像,這是以時間換空間;使用更多的時間,但空間更少。在改變頁面時渲染圖像並儲存渲染後的圖像是以空間換取時間;使用更多的空間,但減少時間。這種技術更普遍地被稱為快取。
在應用循環展開時,較大的代碼量可以換來較快的程式速度。這種技術使循環的每一次迭代的代碼變長,但卻節省了在每一次迭代結束時跳回循環起點所需的計算時間。
其他例子
同樣利用時空權衡的演算法有:
Remove ads
參見
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads