亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【NIO】Chapter 1. Introduction

系統(tǒng) 1807 0

Encapsulation is a good thing:

It partitions responsibility, hides implementation details, and promotes object reuse.

封裝:按職責(zé)劃分類,隱藏實(shí)現(xiàn)細(xì)節(jié),提供對象重用。

?

IO Versus CPU Time

應(yīng)用程序開發(fā)過程中,使用各種技巧將程序設(shè)計(jì)得更靈活,更優(yōu)雅,更具擴(kuò)展性是非常重要的。然而,很多人往往在其它方面花大力氣,卻忽視了另一個(gè)重要的方面:對IO操作沒有給予足夠的重視。

IO操作是否高效,將很大程度上影響系統(tǒng)的響應(yīng)速度。

?

打個(gè)不是很恰當(dāng)?shù)谋扔鳎?

花100倍力氣在程序(非IO)優(yōu)化上,應(yīng)用服務(wù)器吞吐量提高2倍

花10倍力氣在IO程序優(yōu)化上,應(yīng)用服務(wù)器吞吐量提高100倍

應(yīng)用IO非常耗時(shí),稍微優(yōu)化一點(diǎn),性能就有上升很多。

?

所以,當(dāng)發(fā)現(xiàn)程序完成一個(gè)功能,IO操作會占據(jù)很大一部分時(shí)間,那就需要去關(guān)注IO操作的優(yōu)化了。否則,那些你精心設(shè)計(jì)的代碼也只能空閑著(等待IO操作)。

?

No Longer CPU Bound

不要因?yàn)闆]有及時(shí)提供數(shù)據(jù)給CPU,而讓CPU處于等待數(shù)據(jù)的狀態(tài),這是一種浪費(fèi)。

?

比如:CPU希望一次處理一卡車的數(shù)據(jù)。

由于 傳統(tǒng)IO的低效:面向流Stream,一個(gè)字節(jié)/一行代碼(傳統(tǒng)IO類提供的數(shù)據(jù)大小為一鏟子的量),極度不滿足CPU的需求,最終導(dǎo)致CPU很多時(shí)候都是處于“等待數(shù)據(jù)”的狀態(tài),不能有效的利用CPU的處理能力。(注意:傳統(tǒng)IO也可以通過封裝數(shù)據(jù)到緩沖區(qū)Buffer,一次提供一車數(shù)據(jù)給CPU,只是決定權(quán)在程序員那里!)

?

NIO的出現(xiàn),解決了數(shù)據(jù)量的問題,一次裝一卡車(a Buffer Object )數(shù)據(jù)給CPU,讓CPU盡情的處理。NIO倡導(dǎo)通過卡車(Buffer)運(yùn)輸數(shù)據(jù)給CPU。

?

Getting to the Good Stuff

NIO包提供了新的抽象體系解決低效IO的問題。

Channel、Buffer、Selector構(gòu)成了NIO的核心,為高效IO提供了豐富的API進(jìn)行數(shù)據(jù)操作。

雖然NIO不能訪問任何操作系統(tǒng)的底層代碼,但是NIO所提供的高性能IO操作,在大多數(shù)商業(yè)操作系統(tǒng)上都是可用的。

?

Buffer Handling

消除將數(shù)據(jù)從Kernel Space 到User Space的拷貝過程,提供效率

?

磁盤數(shù)據(jù)拷貝到JVM內(nèi)存中需要經(jīng)歷幾個(gè)步驟:
【NIO】Chapter 1. Introduction
?

實(shí)現(xiàn)原理:

1. More than one virtual address can refer to the same physical memory location.

2. A virtual memory space can be larger thanthe actual hardware memory available.

?

By mapping a kernel space address to the same physicaladdress as a virtual address in user space, the DMA hardware (which can access only physical memory addresses) can fill a buffer that is simultaneously visible to both the kernel and a user space process.

?

由內(nèi)核地址空間映射到同一個(gè)物理地址作為用戶空間的虛擬地址

DMA硬件(只能訪問物理內(nèi)存地址)仍然將數(shù)據(jù)裝入到內(nèi)核空間

該緩沖區(qū)(內(nèi)核空間在內(nèi)存中的映射地址所指內(nèi)存區(qū)域)同時(shí)對內(nèi)核和用戶空間是可見的。這樣,將數(shù)據(jù)寫入內(nèi)核也就變相的寫入到了用戶空間了,JVM直接訪問用戶空間的虛擬地址就可以拿到內(nèi)核緩存區(qū)的數(shù)據(jù)。
【NIO】Chapter 1. Introduction
?

?

?

?

?

【NIO】Chapter 1. Introduction


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一本伊人| 99久久久久国产 | 亚洲欧美综合区自拍另类 | 欧美精品v欧洲高清 | 亚洲综合成人网 | 夜夜狠狠狠狠 | 日韩欧美中 | 欧美一区二区三区视频在线 | 天天碰夜夜 | 亚洲欧洲成人 | 中文字幕日韩欧美 | 99在线热视频只有精品免费 | 精品精品国产自在久久高清 | 亚洲水蜜桃久久综合网站 | 久久99久久99精品免观看动漫 | 精品中文字幕乱码一区二区 | 私人影院在线免费观看 | 一区二区国产精品 | 波多野结衣一区二区三区在线观看 | 国产亚洲欧美在线视频 | 亚洲欧美成人永久第一网站 | 久久精品免费大片国产大片 | 四虎永久在线精品2022 | 99久久精品国产片久人 | 久久成人亚洲香蕉草草 | 麻豆精品久久久一区二区 | 7777奇米 | 欧美18—19sex性护士 | 九九成人 | 日本一区色 | 有码中文字幕在线观看 | 俄罗斯毛片视频 | 久热综合 | 中国护士一级毛片免费版本 | 国产国拍亚洲精品午夜不卡17 | 亚洲成人第一页 | 日韩一区二区三区中文字幕 | 玖玖在线资源 | 天天操夜 | 亚洲一区小说区中文字幕 | 中文字幕日本在线 |