如何處理I O開銷

2021-09-27 03:11:47 字數 840 閱讀 9507

如何成為優秀程式設計師第 9/100 期分享

閱讀本文大概需要 2 分鐘

01

構建乙個快速的系統通常是乙個提高 i/o

在很多問題上,處理器的速度比硬體交流要快得多。這種代價通常是小的 i/o,可能包括網路消耗,磁碟 i/o,資料庫查詢,檔案 i/o,還有其他與處理器不太接近的硬體使用。所以構建乙個快速的系統通常是乙個提高 i/o,而非在緊湊的迴圈裡優化**或者甚至優化演算法的問題。

02

兩種基本的技術來優化 i/o

有兩種基本的技術來優化 i/o:快取和代替(比如用短的字元代表長的字元)。快取是通過本地儲存資料的副本,再次獲取資料時就不需要再執行 i/o,以此來避免 i/o(通常避免讀取一些抽象的值)。快取的關鍵在於要讓哪些資料是主幹的,哪些資料是副本變得顯而易見。主幹的資料只有乙份(在乙個更新週期裡)。快取有這樣一種危險:副本有時候不能立刻反映主幹的修改。

代替是通過更高效地表示資料來讓 i/o 更廉價。這通常會限制其他的要求,比如可讀性和可移植性。

代替通常可以用他們第一實現中的兩到三個因子來做優化。實現這點的技術包括使用二進位制表示而非人類可識別的方式,傳遞資料的同時也傳遞乙個符號表,這樣長的符號就不需要被編碼,乙個極端的例子是哈弗曼編碼。

另一種有時能夠用來優化本地引用的技術是讓計算更接近資料。例如,如果你正在從資料庫讀取一些資料並且在它上面執行一些簡單的計算,比如求和,試著讓資料庫伺服器去做這件事,這高度依賴於你正在工作的系統的型別,但這個方面你必須自己探索。

如何處理DDoS

ddos 簡述 ddos是分布式拒絕服務 distributed denial of service 的英文縮寫,其 方式通常是利用很多受 者控制的 殭屍主機 向目標主機傳送大量看似合法的資料報,從而造成主機資源被耗盡或網路被堵塞,導致主機無法繼續正常提供服務。ddos通常可以分為兩類,即資源耗費式...

如何處理DDoS

ddos 簡述 ddos是分布式拒絕服務 distributed denial of service 的英文縮寫,其 方式通常是利用很多受 者控制的 殭屍主機 向目標主機傳送大量看似合法的資料報,從而造成主機資源被耗盡或網路被堵塞,導致主機無法繼續正常提供服務。ddos通常可以分為兩類,即資源耗費式...

IO流 JVM預設是如何處理異常的

package cn.itcast 01 異常 程式出現了不正常的情況。舉例 今天天氣很好,小明出去旅遊。騎著自行車,去山裡面呼吸新鮮空氣。問題1 山路塌陷了,小明及時停住了,但是過不去了。嚴重的問題。問題2 小明出門推自行車,發現氣沒了,把氣打起來。出發前就應該檢查的問題。問題3 小明騎著車在山路...