日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CPU-bound(计算密集型) 和I/O bound(I/O密集型)

發布時間:2024/4/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CPU-bound(计算密集型) 和I/O bound(I/O密集型) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

IO bound 指的是系統的CPU效能相對硬盤/內存的效能要好很多,此時,系統運作,大部分的狀況是 CPU 在等 I/O (硬盤/內存) 的讀/寫,此時 CPU Loading 不高。
CPU bound 指的是系統的 硬盤/內存 效能 相對 CPU 的效能 要好很多,此時,系統運作,大部分的狀況是 CPU Loading 100%,CPU 要讀/寫 I/O (硬盤/內存),I/O在很短的時間就可以完成,而 CPU 還有許多運算要處理,CPU Loading 很高。

計算密集型 (CPU-bound)?
在多重程序系統中,大部份時間用來做計算、邏輯判斷等CPU動作的程序稱之CPU bound。例如一個計算圓周率至小數點一千位以下的程序,在執行的過程當中

絕大部份時間用在三角函數和開根號的計算,便是屬于CPU bound的程序。
It is because the performance characteristic of most protocol codec implementations is CPU-bound, which is the same with I/O processor threads.

根據以上分析,可以認為通常情況下,大部分程序針對某個特定的性能metric而言
都可分為CPU bound 和 I/O bound兩類。
CPU bound的程序一般而言CPU占用率相當高。這可能是因為任務本身不太需要訪問I/O設備,也可能是因為程序是多線程實現因此屏蔽掉了等待I/O的時間。
而I/O bound的程序一般在達到性能極限時,CPU占用率仍然較低。這可能是因為任務本身需要大量I/O操作,而pipeline做得不是很好,沒有充分利用處理器能力;還可能是因為數據局部性不是很好,導致較多page error,結果產生了大量disk I/O的開銷。
可能性很多,具體情況具體分析吧。

說到如何確定是CPU bound 還是 I/O bound,我一般用top先看達到性能極限時的CPU占用率,然后用sar,iostat等,獲得具體的i/o操作或是page error的統計數據,如果還需要更精準的信息,例如確定具體是哪些代碼產生了這些開銷,則要用到oprofile或vtune了。

通常I/O bound的程序包括web server的靜態頁面訪問,或者是基于數據庫的一些應用等。
而大量計算型的應用都屬于CPU bound吧。

最后聊一下如果在一個系統里CPU bound的程序和I/O bound的程序一起run會怎么樣?
應該是CPU bound的程序對CPU的占用率會非常不公平地接近100%吧。因為I/O bound的程序可能一個時間片還沒用完就block了,放棄CPU了。而CPU bound的程序因此而得到了很多調度機會并且每次都能把CPU run完。故在這樣的系統里要給I/O bound的程序更高的優先級使其能被調度得更多些。
?

轉載于:https://my.oschina.net/wangande2014/blog/673898

總結

以上是生活随笔為你收集整理的CPU-bound(计算密集型) 和I/O bound(I/O密集型)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。