系统集成论坛

标题: 如何提高文件读写速度? [打印本页]

作者: aiserver    时间: 2013-5-30 08:20
标题: 如何提高文件读写速度?
如果有文件读写的话,那么对文件的访问将是影响程序运行速度的一大因素。提高文件访问速度的主要办法有两个:一是采用内存映射文件,二是使用内存缓冲。下面是一组测试数据(见《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大小)。

   使用内存缓冲区方法的好处主要是便于移植,占用内存少,便于硬件实现等。

http://blog.163.com/cau_eric/blog/static/1880661200681275558903/




欢迎光临 系统集成论坛 (http://bbs.xtjc.com/) Powered by Discuz! X3.1