青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

程序I/O優化

       本文講述在編寫C程序代碼的常用優化辦法,分為I/O篇,內存篇,算法篇,MMX匯編篇。

一.I/O

       如果有文件讀寫的話,那么對文件的訪問將是影響程序運行速度的一大因素。提高文件訪問速度的主要辦法有兩個:一是采用內存映射文件,二是使用內存緩沖。下面是一組測試數據(見《UNIX環境高級編程》3.9節),顯示了用18種不同的緩存長度,讀1 468 802字節文件所得到的結果。

緩沖大小

用戶CPU(秒)

系統CPU(秒)

時鐘時間(秒)

循環次數(秒)

1

23.8

397.9

423.4

1 468 802

2

12.3

202.0

215.2

734 401

4

6.1

100.6

107.2

367 201

8

3.0

50.7

54.0

183 601

16

1.5

25.3

27.0

91 801

32

0.7

12.8

13.7

45 901

64

0.3

6.6

7.0

22 951

128

0.2

3.3

3.6

11 476

256

0.1

1.8

1.9

5 738

512

0.0

1.0

1.1

2 869

1 024

0.0

0.6

0.6

1 435

2 048

0.0

0.4

0.4

718

4 096

0.0

0.4

0.4

359

8 192

0.0

0.3

0.3

180

16 384

0.0

0.3

0.3

90

32 768

0.0

0.3

0.3

45

65 536

0.0

0.3

0.3

23

131 072

0.0

0.3

0.3

12

可見,一般的當內存緩沖區大小為8192的時候,性能就已經是最佳的了,這也就是為什么在H.263等圖像編碼程序中,緩沖區大小為8192的原因(有的時候也取2048大小)。使用內存緩沖區方法的好處主要是便于移植,占用內存少,便于硬件實現等。下面是讀取文件的C偽碼:

    int Len;

BYTE buffer[8192];

    ASSERT(buffer==NULL);

    If buffer is empty{

        Len=read(File,buffer,8192);

        If(len==0) No data and exit;

    }

       

但是如果內存比較大的時候,采用內存映射文件可以達到更佳性能,并且編程實現簡單。內存映射的具體使用說明見msdn October 2001中的Platform SDK

Documentation—Base Services—File Storage—File Mapping。下面是一點建議:

內存映射文件不能超過虛擬內存的大小,最好也不要太大,如果內存映射文件接近虛擬內存大小的時候,反而會大大降低程序的速度(其實是因為虛擬內存不足導致系統運行效率降低),這個時候,可以考慮分塊映射,但是我覺得如果這樣,還不如直接使用內存緩沖來得直接一些。

可以將兩種方法統一使用,如我在編大圖像文件數據處理的時候(因為是Unix工作站,內存很大GB單位)使用了內存映射文件,但是為了最佳性能,也使用了一行圖像緩存,這樣在讀取文件中數據的時候,就保證了僅僅是順序讀寫(內存映射文件中,對順序讀寫有專門的優化)。

在寫文件的時候使用內存映射文件要有一點小技巧:應該先創建足夠大的文件,然后將這個文件映射,在處理完這個文件的時候,用函數SetFilePointerSetEndOfFile來對文件進行截尾

對內存映射文件進行操作與對內存進行操作類似(使用起來就象數組一樣),那么如果有大塊數據讀寫的時候,切記使用memcpy()函數(或者CopyMemory()函數)

 

    總之,如果要使用內存映射文件,必須:1.處理的文件比較的小,2.處理的文件很大,但是運行環境內存也很大,并且一般在運行該程序的時候不運行其他消耗內存大的程序,同時用戶對速度有特別的要求,而且對內存占用沒有什么要求。如果以上兩個條件不滿足的時候,建議使用內存緩沖區的辦法。

 

posted on 2009-03-12 12:31 肥仔 閱讀(807) 評論(1)  編輯 收藏 引用 所屬分類: Windows開發

評論

# re: 程序I/O優化[未登錄]  回復  更多評論   

我覺得第一點的8K大小,最優化值是系統內存管理的頁和內存分配粒度、文件系統的簇大小等等這些的整數倍吧?
2010-04-27 10:38 | riverqh
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久久亚洲精品| 亚洲欧美日韩精品久久| 99精品欧美一区二区三区| 国产综合精品| 国产视频在线观看一区二区| 国产精品美女久久久| 欧美三级电影大全| 欧美日韩国语| 国产精品系列在线播放| 国产三区精品| 亚洲国产cao| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲国产精品小视频| 蘑菇福利视频一区播放| 91久久精品网| 中文无字幕一区二区三区| 午夜欧美精品| 久久蜜桃av一区精品变态类天堂| 久久综合久久久久88| 欧美日韩一级片在线观看| 国产精品一区二区你懂得 | 亚洲欧美国产一区二区三区| 欧美一区二区日韩| 欧美大尺度在线观看| 欧美午夜电影在线| 在线观看日韩国产| 这里是久久伊人| 久久九九久精品国产免费直播| 久久综合九色99| a91a精品视频在线观看| 欧美一区二区视频观看视频| 欧美精品一区二区蜜臀亚洲| 国产亚洲aⅴaaaaaa毛片| 亚洲精品欧美极品| 久久精品一本| 91久久综合| 亚洲视频福利| 欧美高清视频www夜色资源网| 亚洲理论在线| 久久嫩草精品久久久精品| 国产精品v日韩精品v欧美精品网站| 国产亚洲一区二区三区在线观看| 中日韩美女免费视频网址在线观看 | 亚洲福利视频三区| 亚洲男人的天堂在线| 亚洲高清一区二区三区| 亚洲欧美日韩综合一区| 欧美日韩三级| 亚洲国产日韩欧美综合久久| 久久xxxx精品视频| 一区二区三区 在线观看视| 欧美激情视频网站| 在线免费一区三区| 久久婷婷综合激情| 午夜精品一区二区三区电影天堂| 欧美久久婷婷综合色| 亚洲国产成人91精品| 欧美成人a视频| 久久全国免费视频| 国产一区视频网站| 久久av在线| 久久av一区二区| 国产伦精品一区二区三区在线观看 | 亚洲视频中文字幕| 亚洲区欧美区| 欧美激情国产日韩精品一区18| 激情综合五月天| 久久伊人精品天天| 久久国产精品久久久久久电车| 国产精品一区免费视频| 亚洲女人天堂av| 亚洲综合好骚| 国产一区二区三区久久久| 久久成年人视频| 欧美一级艳片视频免费观看| 国产综合色在线| 欧美阿v一级看视频| 欧美激情第3页| 亚洲午夜精品久久| 亚洲欧美日韩高清| 国产一区二区三区久久久| 久久夜色精品国产亚洲aⅴ| 久色婷婷小香蕉久久| 一本色道久久综合亚洲精品不| 亚洲深夜福利| 狠狠色丁香久久综合频道| 欧美不卡视频| 国产精品99一区| 久久综合九色欧美综合狠狠| 欧美激情一二区| 国产精品影音先锋| 久久久久一区| 欧美大胆人体视频| 亚洲欧美日韩天堂一区二区| 久久久久久久久岛国免费| 亚洲精品在线免费观看视频| 亚洲图片欧美午夜| 国产综合色精品一区二区三区| 亚洲第一精品夜夜躁人人躁| 国产精品久久久久久久久久直播| 久久久精品一区| 欧美日韩一区在线播放| 久久久人成影片一区二区三区 | 久久成年人视频| 久久综合久久美利坚合众国| 亚洲男人的天堂在线观看| 久久婷婷蜜乳一本欲蜜臀| 亚洲一区成人| 免费日韩av电影| 亚洲欧美日韩综合aⅴ视频| 久久精品女人| 午夜精品久久久久久久久久久久久 | 国产一区二区高清不卡| 免费观看亚洲视频大全| 国产精品亚洲第一区在线暖暖韩国| 榴莲视频成人在线观看| 欧美涩涩网站| 亚洲国产精品成人一区二区| 国产日韩精品入口| 亚洲精品日韩欧美| 亚洲电影第1页| 欧美一区久久| 午夜精品影院在线观看| 欧美精品一区二区三区蜜臀| 美女91精品| 国产一区高清视频| 亚洲一区国产精品| 日韩午夜在线电影| 美日韩精品免费| 久久亚洲春色中文字幕| 国产精品国产三级国产aⅴ入口| 欧美a一区二区| 狠狠色狠狠色综合人人| 午夜伦理片一区| 欧美在线看片| 国产日韩精品一区二区| 亚洲一区二区三区成人在线视频精品| 亚洲人成77777在线观看网| 久久综合伊人77777麻豆| 老司机精品久久| 国产视频精品免费播放| 性久久久久久久久久久久| 午夜精品久久久久久久99水蜜桃| 欧美午夜久久| 亚洲欧美一区二区三区久久| 亚洲欧美国产视频| 欧美四级伦理在线| 亚洲图片欧洲图片av| 性欧美大战久久久久久久免费观看| 久久蜜桃精品| 久久精品国产亚洲aⅴ| 国产精品呻吟| 欧美一区二区日韩| 美女日韩在线中文字幕| 在线免费精品视频| 欧美激情免费在线| 亚洲乱亚洲高清| 亚洲欧美日韩精品久久| 国产日韩欧美精品综合| 久久久精品999| 亚洲激情在线播放| 亚洲永久免费av| 国产亚洲a∨片在线观看| 久久精品水蜜桃av综合天堂| 久久一二三国产| 亚洲日韩欧美视频一区| 欧美视频导航| 欧美一区二区播放| 美女黄网久久| 国产精品99久久不卡二区| 国产欧美综合在线| 久热这里只精品99re8久| 亚洲美女黄网| 久久久亚洲精品一区二区三区 | 亚洲网站在线看| 国产精品制服诱惑| 久久久久国内| 日韩视频一区二区三区在线播放免费观看| 亚洲无亚洲人成网站77777| 国产精品成人免费| 久久亚洲一区| 亚洲美女少妇无套啪啪呻吟| 久久精品亚洲一区二区三区浴池| 亚洲国产成人在线播放| 国产精品久久夜| 欧美成人首页| 性一交一乱一区二区洋洋av| 亚洲国产精品va| 久久久xxx| 亚洲综合日韩中文字幕v在线| 精品99视频| 国产乱肥老妇国产一区二| 欧美精品123区| 久久综合一区| 欧美专区第一页| 亚洲性视频网站| 亚洲欧洲一区二区在线观看| 久久久一区二区| 欧美一区二视频| 亚洲一区免费看|