转载时请表明原文出处( http://blog.sina.com.cn/wyw1976 )及作者邮箱( [email protected] )
编译 :
1. download source codes from http://www.iozone.org/ : iozone3_323.rar
2. modify the makefile for arm-linux:
CC=arm-linux-gcc
GCC=arm-linux-gcc
3. make linux-arm
4. 编译成功, 生成可执行文件iozone。
使用:
./iozone -a -b result.wks [结果保存在result.wks中,这是一个EXCEL格式的文件]
./iozone -a -g 1m -b result.wks [限制文件最大为1M]
如果要用IOZone 测量storage card 的性能,只需将iozone拷贝到storage card上运行即可。
在copy的开发板上运行时报错
error while loading shared libraries:原来是缺少共享库,然而开发板上并没有在制作文件系统时添加ldd 这条命令,找这个源码又一时找不到,于是重新编译了一个在pc机版本的iozone,在虚拟机里查看ldd iozone,找到所需要的共享库,copy到开发板即可。
经验:
在测NAND Flash的性能是,我们发现NAND的读写速度可达200MB/sec, 这显然是不对的,后来经过修改运行时的参数,终于得到了合理的数值, 具体参数如下:
./iozone -Raz -b out.wks -S 32 -g 64M -+r
具体参数说明如下:
-R: 产生EXCEL格式的数据
-a: 自动运行模式
-z: 测量所有大小的record,如果不指定,则IOzone将忽略小size的record当文件尺寸等于或大于32MB时。
-S: 指定process cache的大小,这里值得是Dcache.
-g: 指定最大文件是64MB, 缺省是512MB, 太耗时了。
-+r: 这是真正影响最终结果的参数,它是IOzone在打开文件时的flag中包含O_RSYNC与O_SYNC,即同步读和同步写,保证数据真正写到硬件上及真正从硬件上读数据。
fileop:
IOzone 中自带的一个测量文件系统性能的小工具,包括mkdir, rmdir, create, read, write, readdir, link,unlink, delete等。
read 与fread的区别:
>>fread是带缓冲的,read不带缓冲,因此fread, fwrite的性能应该比read, write好, 事实也确实如此
>>fopen是标准c里定义的,open是POSIX中定义的.
>>fread可以读一个结构.read在linux/unix中读二进制与普通文件没有区别.
>>fopen不能指定要创建文件的权限.open可以指定权限.
>>fopen返回指针,open返回文件描述符(整数).
>>linux/unix中任何设备都是文件,都可以用open,read.