空間換時間隨筆
在實際的生活中,難免遇到排隊的事情,比如去銀行存錢取錢,轉賬等,如果去櫃檯都有先拿個號,按號排隊處理業務,這是非常常見的,火爆的餐館也是這樣。為提高效率,減少等待時間,銀行的做法可以是簡化辦事流程,提供營業員的處理速度來減少使用者等待的時間,另乙個做法可以是增加櫃檯,多些營業員來處理。餐館的做法基本上就是加台,對應的it系統中就是所謂的空間換時間的常用處理方式
在it系統中有哪些場景常常使用空間換時間的做法,下面列舉幾項:
1、網際網路服務,伺服器擴容
2、無線通訊網,增加基站,使用更多的頻譜。adsl換成光纖,提供資料傳輸速度。
3、網路資料檢索,多台機器同時search
4、資料庫方面的例子就更多了,通過增加索引的空間,提供更多的資料關聯關係,提高查詢效率。分布式資料庫提高查詢效率,資料由一台分布資料到多台機器上,多台同時查,更是典型。檔案追加寫的方式,不進行老資料的及時更新,直接使用新資料,多數nosql大資料的資料庫技術都是此類處理。
5、程式設計方面,有序鍊錶的查詢,可以使用skip list的方式,同樣也是用空間換時間的做法。為了方便鍊錶刪除,增加雙向鏈結的方式。資料通訊的過程中,使用定長報文,最後乙個報文浪費點空間,對it系統定長的資料和有嚴格格式資料容易處理,自然效率就高,數碼電視中pid的包,188或204的包,沒有資料使用ff來填充。
6、系統安全方面,秘鑰長度越來越長,破解難道加大
7、16位系統換32位系統,再到64位系統,定址空間越來越大,資料處理能力加強。
8、數碼電視中,1080到4k ,增加解析度,30p 到120p,提供更細緻的畫面
9、顯示卡中記憶體越大,處理效能也會翻倍。
空間換時間
空間換時間這樣的思路,在程式設計演算法 硬體設計燈 戰爭領域都是有涉及的,我這裡所講的空間換時間是被包含在資料倉儲範疇裡面的。空間換時間,我的理解是什麼呢?就是我們需要設計一種資料結構,這種資料結構最大的特點是提高查詢的效率。我在這裡總結一下,空間換時間的做法。在業務系統裡面,一般會按照資料庫的三正...
JAVA空間換時間以及時間換空間的例子
演算法的好壞有兩個指標 需要的記憶體空間 可以 理解為執行 需要的記憶體空間 執行的時間 可以簡單的理解為 需要執行的步數 程式的設計要不就是時間換空間,要不就是用空間去換時間。並且時間和空間是可以進行相互轉化的 對於執行的慢的程式,可以通過消耗記憶體 即構造新的資料結構 來進行優化。而消耗記憶體的...
以空間換時間經典演算法
以前看過一篇文章 優化c 常用的幾招 作者提到的第一招就是 以空間換時間 還舉了乙個例子,由於比較經典,引用一下 電腦程式中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程式的效率問題,我們就有了解決問題的第1招 以空間換時間。比如說字串的賦值 方法a 通常的辦法 define l...