免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發新帖
樓主: gqbfree
打印 上一主題 下一主題

[技術動態] 關于AIO的一個疑問 [復制鏈接]

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
11 [報告]
發表于 2014-10-25 16:59 |只看該作者
gqbfree 發表于 2014-10-25 13:55
回復 9# csumck
但是對于AIO,內核空間拷貝到用戶空間,雖然是由OS完成,但是本質上也是需要消耗CPU。    ...


拷貝消耗的CPU當然都要消耗,不會被節省。  AIO省掉的CPU時間不是拷貝的耗時,而是等待拷貝的耗時。 CPU是多核的,內核會用其他CPU核心去完成操作,而你的程序沒必要在自己工作的CPU也陪著一起消耗CPU。

論壇徽章:
0
12 [報告]
發表于 2014-10-25 23:07 |只看該作者
用別的CPU去完成拷貝,不也是消耗了總性能么?  假設所有的CPU都在高速的運行中。

我覺得單從理論上講,AIO在總的CPU處理上并沒有優勢,但是實際情況中,各個CPU都有可能存在空閑階段,所以AIO優勢在于:OS會根據當前的任務繁忙程度進行拷貝,合理的利用CPU資源。          (比如應用程序發起讀請求后可以繼續后續操作,一旦空閑OS可以進行數據拷貝,避免了NIO中你說的忙等)
我對AIO的本質了解不是很深,所以想確認一下。

回復 11# csumck


   

論壇徽章:
0
13 [報告]
發表于 2014-10-27 15:23 |只看該作者
周 一 上 班 都 在 睡 覺 嗎,人 都 跑 哪 里 去 了。。!

論壇徽章:
0
14 [報告]
發表于 2014-10-29 10:10 |只看該作者
@yulihua49   @zylthinking   @linux_c_py_php   炸出來

論壇徽章:
0
15 [報告]
發表于 2014-11-03 12:42 |只看該作者
再頂一次!

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯賽之四川
日期:2017-02-07 21:08:572015年亞冠紀念徽章
日期:2015-11-06 12:31:58每日論壇發貼之星
日期:2015-08-04 06:20:00程序設計版塊每日發帖之星
日期:2015-08-04 06:20:00程序設計版塊每日發帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
16 [報告]
發表于 2014-11-05 20:47 |只看該作者
本帖最后由 yulihua49 于 2014-11-05 20:52 編輯
csumck 發表于 2014-10-25 16:59
拷貝消耗的CPU當然都要消耗,不會被節省。  AIO省掉的CPU時間不是拷貝的耗時,而是等待拷貝的耗時。 CP ...

我對這個問題不是太理解。
epoll處理io事件,就已經是異步io了,那個AIO是干啥的?就是磁盤IO嗎?
如果是磁盤IO,那么linux已經做的很好了,基本上已經是異步的了,沒必要自己整吧?
實測寫日志,LINUX比solaris快5、6倍,貌似提交即返回,就是異步的。

論壇徽章:
0
17 [報告]
發表于 2014-11-05 22:39 |只看該作者
回復 16# yulihua49
關于AIO,請參考一下網上流傳比較廣的一篇 http://www.ibm.com/developerworks/cn/linux/l-async/
另外, Proactor模型應該就是指使用AIO。        只不過從細節上剖析,我不明白AIO的性能在哪里提高上去的(相對于EPOLL+NIO)。   

   

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯賽之四川
日期:2017-02-07 21:08:572015年亞冠紀念徽章
日期:2015-11-06 12:31:58每日論壇發貼之星
日期:2015-08-04 06:20:00程序設計版塊每日發帖之星
日期:2015-08-04 06:20:00程序設計版塊每日發帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
18 [報告]
發表于 2014-11-05 23:03 |只看該作者
本帖最后由 yulihua49 于 2014-11-06 10:52 編輯
gqbfree 發表于 2014-11-05 22:39
回復 16# yulihua49
關于AIO,請參考一下網上流傳比較廣的一篇 http://www.ibm.com/developerworks/cn/li ...

這種AIO沒什么實際意義。

A出去后,再循環等待,輪詢。。。。。吃飽了撐的。。。。

真正的異步,是發射后不管,后續任務由別的線程完成。這必須通過諸如epoll之類的事件器來觸發后續線程處理。

對異步操作的需求:
1.任務發射后不管,可以注冊一個“完成事件”,不一定由哪個線程執行。
2.不管前述任務是否完成,可以繼續發射后續任務。
3.所有任務后臺并行執行,完成的先后次序無關緊要。
4.無需查詢任務是否完成?稍O置超時條件,屆時沒有“完成事件”視作異常。

AIO顯然不能滿足需求。

論壇徽章:
2
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
19 [報告]
發表于 2014-11-07 06:17 來自手機 |只看該作者
中斷控制器的中斷就是AIO。中斷可是現代電腦體系結構的基礎。如果硬件都是AIO實現的,當然使用AIO會有最小的轉換損失。

論壇徽章:
2
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
20 [報告]
發表于 2014-11-07 06:30 來自手機 |只看該作者
再來看EPOLL。不管再怎么E,它也是POLL。不是嗎?看看EPOLL的實現代碼,可以肯定有AIO的影子。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則 發表回復

  

北京盛拓優訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP
   日韩综合区视频第一页导航,无码JK粉嫩小泬在线观看,午夜精品A片一区二区三区,日日躁夜夜躁狠狠躁麻豆,大胆国模,免费观看无遮挡www的网站