vxworks copy函數缺陷

當用copy命令拷貝文件到tffs或者U盤中,6.x版本上拷貝速度明顯遠遠慢於5.5。
追蹤代碼發現copy使用的中間函數copyStreams。這個函數的作用是從第一個文件中讀出一個數據塊到緩衝區,然後寫入第二個文件。
vxWorks5.5下,這個數據塊的大小是64K,對於1M的文件只需要調用16次文件系統的寫函數;
而vxWorks6.x下,這個數據塊的大小是1K,拷貝1M的文件需要調用1024次寫函數。
每次調用寫函數都需要同步FAT表和文件描述。

對於flash一般一個扇區在64KB或者128KB大小,將copyStreams中的COPY_BLOCK_SIZE改爲此大小可以明顯改善copy的速度!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章