緩存與緩沖的區(qū)別與聯(lián)系 有什么詳細(xì)的舉例?
Audie
相信大家現(xiàn)在都使用過(guò)手機(jī)和電腦了,在現(xiàn)在這個(gè)互聯(lián)網(wǎng)已經(jīng)普及的時(shí)代,這兩種電子產(chǎn)品真的十分的常見(jiàn)了。那么大家有沒(méi)有緩存過(guò)視頻呢?有沒(méi)有在看視頻的時(shí)候進(jìn)行過(guò)緩沖呢?下面我們來(lái)了解一下關(guān)于緩存與緩沖的區(qū)別與聯(lián)系。
緩存是指把常用數(shù)據(jù)存儲(chǔ)到可以快速獲取的區(qū)域,以備重復(fù)利用,一般叫做cache. 緩存能提高效率緩沖是指在數(shù)據(jù)流轉(zhuǎn)過(guò)程中,不同層次速度不一致時(shí),利用緩沖區(qū)來(lái)緩解上下層之間速率問(wèn)題,一般叫做buffer. 緩沖能提高速度buffer(緩沖)是為了提高內(nèi)存和硬盤(pán)或其他I/0設(shè)備之間的數(shù)據(jù)交換的速度而設(shè)計(jì)的。cache(緩存)是為了提高cpu和內(nèi)存之間的數(shù)據(jù)交換速度而設(shè)計(jì)。cpu在執(zhí)行程序所用的指令和讀數(shù)據(jù)都是針對(duì)內(nèi)存的也就是從內(nèi)存中取得的。由于內(nèi)存讀寫(xiě)速度慢,為了提高cpu和內(nèi)存之間數(shù)據(jù)交換的速度,在cpu和內(nèi)存之間增加了cache,它的速度比內(nèi)存快,但是造價(jià)高,又由于在cpu內(nèi)不能集成太多集成電路,所以一般cache比較小。
以后intel等公司為了進(jìn)一步提高速度,增加了二級(jí)cache,甚至三級(jí)cache,它是根據(jù)程序的局部性原理而設(shè)計(jì)的就是cpu執(zhí)行的指令和訪問(wèn)的數(shù)據(jù)往往在集中的某一塊,所以把這塊內(nèi)容放入cache后,cpu就不用在訪問(wèn)內(nèi)存了,這就提高了訪問(wèn)速度。當(dāng)然若cache中沒(méi)有cpu所需要的內(nèi)容,還是要訪問(wèn)內(nèi)存的。 緩沖buffers是根據(jù)磁盤(pán)的讀寫(xiě)設(shè)計(jì)的,把分散的寫(xiě)操作集中進(jìn)行,減少磁盤(pán)碎片和硬盤(pán)的反復(fù)尋道,從而提高系統(tǒng)性能。linux有一個(gè)守護(hù)進(jìn)程定期清空緩沖內(nèi)容,即寫(xiě)入磁盤(pán)也可以通過(guò)sync命令手動(dòng)清空緩沖。
舉個(gè)例子吧,我這里有一個(gè)ext2的U盤(pán),我往里面cp一個(gè)3M的MP3,但U盤(pán)的燈沒(méi)有跳動(dòng)?過(guò)了一會(huì)兒,或者手動(dòng)輸入sync,U盤(pán)的燈就跳動(dòng)起來(lái)了。卸載設(shè)備時(shí)會(huì)清空緩沖,所以有些時(shí)候卸載一個(gè)設(shè)備時(shí)要等上幾秒鐘。修改/etc/sysctl.conf中的vm.swappiness右邊的數(shù)字可以在下次開(kāi)機(jī)時(shí)調(diào)節(jié)swap使用策略。該數(shù)字范圍是0-100數(shù)字越大越傾向于使用swap。默認(rèn)為60,可以改一下試試。--兩者都是RAM中的數(shù)據(jù)。簡(jiǎn)單來(lái)buffer是即將要被寫(xiě)入磁盤(pán)的,而cache是被從磁盤(pán)中讀出來(lái)的。
buffer是由各種進(jìn)程分配的,被用在如輸入隊(duì)列等方面。一個(gè)簡(jiǎn)單的例子如某個(gè)進(jìn)程要求有多個(gè)字段讀入,在所有字段被讀入完整之前,進(jìn)程把先前讀入的字段放在buffer中保存。cache經(jīng)常被用在磁盤(pán)的I/O請(qǐng)求上,如果有多個(gè)進(jìn)程都要訪問(wèn)某個(gè)文件,于是該文件便被做成cache以方便下次被訪問(wèn),這樣可提高系統(tǒng)性能。
以上就是關(guān)于緩存與緩沖的區(qū)別與聯(lián)系了,吐客養(yǎng)生提醒您注意了解緩沖和緩存!