CPU資源和內(nèi)存資源的差異
CPU 可分配的是使用時間,也就是操作系統(tǒng)管理的時間片,每個進程在一定的時間片里運行自己的任務(另外一種方式是綁核,也就是把 CPU 完全分配給某個應用使用,但這種方式不夠靈活會造成嚴重的資源浪費);而對于內(nèi)存,系統(tǒng)提供的是內(nèi)存大小。
CPU 的使用時間是可壓縮的,換句話說它本身無狀態(tài),申請資源很快,也能快速正常回收;而內(nèi)存大小是不可壓縮的,因為它是有狀態(tài)的(內(nèi)存里面保存的數(shù)據(jù)),申請資源很慢(需要計算和分配內(nèi)存塊的空間),并且回收可能失?。ū徽加玫膬?nèi)存一般不可回收)。
因此我們一般會認為CPU是可壓縮資源而內(nèi)存是不可壓縮資源。
把資源分成可壓縮和不可壓縮,是因為在資源不足的時候,它們的表現(xiàn)很不一樣。對于不可壓縮資源,如果資源不足,也就無法繼續(xù)申請資源(內(nèi)存用完就是用完了),并且會導致應用運行產(chǎn)生無法預測的錯誤(應用申請內(nèi)存失敗會導致一系列問題);而對于可壓縮資源,比如 CPU 時間片,即使應用使用的 CPU 資源很多,應用使用也可以按照權(quán)重分配給所有 應用使用,雖然每個人使用的時間片減少,但不會影響程序的邏輯。