新手急问一个关于loop device使用而引起的速度变慢问题
小弟我第一次真正开发基于嵌入式Linux的手持多媒体终端产品,在开发过程中对产品中 4GB 的Nandflash的部分进行访问和使用时,采用了loop device虚拟设备,即首先调用
dd bs=1M count=1920 if=/dev/zero of=/mnt/disk1
创建了一个1.87GB的文件disk1,然后调用使用fdisk -lu /mnt/disk1得到分区的偏移量offset = 32256,然后调用
losetup -o 32256 /dev/loop0 /mnt/disk1
将该文件和和loop0关联——这些步骤都是按照网上和书上的Linux教程来做的。现在产品样机在这样的基础上已经可以使用Nandflash了,并且通过mount -t vfat /dev/loop0 /media后也可以和PC正常连接和并识别Nandflash了,在样机上进行多媒体播放的时候,play的时候一切也比较正常,但是在进行stop和quit返回上级菜单的时候非常慢,往往需要两三分钟才能退出去。
同样的样机上对SD card上的多媒体文件进行播放时却一切正常,无论是play还是stop、quit响应都非常迅速,而以前在没有使用loop device而直接对Nandflash进行操作时也没有出现过这样的问题。因此可以断定是使用oop虚拟设备对Nandflash的影响造成的,经过测试后发现在播放媒体文件时stop或quit时,系统的内存消耗陡增以致几乎耗尽,
小弟愚钝,确实不知道这是什么原因了,在此虚心向各位大虾求教Linux中对loop device的使用为什么会造成这样的问题,另外是否和在使用dd命令创建文件时使用的bs和count的值的大小有关~~~谢谢了