1. 程式人生 > >SylixOS使用RAM檔案系統大幅度提高系統性能

SylixOS使用RAM檔案系統大幅度提高系統性能

在某些特定使用場景中可使用RAM檔案系統提高系統性能,解決業務問題。一下已MPC8313作為測試平臺,測試使用RAM和yaffs2檔案系統時,FTP檔案傳輸速率與應用程式載入時間的效能變化。

硬體平臺:MPC8313
base版本:V1.8.0
FTP檔案傳輸樣本:bspmpc8313.elf    3.51MB
應用程式載入樣本:hellofile  104.37KB   

應用載入時間測試樣本:test


yaffs2檔案系統:
FTP檔案傳輸耗時3.63s  平均速率:966.9KB/s

應用程式載入耗時74ms


RAM檔案系統:
FTP檔案傳輸耗時671ms   平均速率:5.23MB/s
應用程式載入耗時50ms

從測試資料可以看出,RAM會大幅度提升檔案操作速率,同樣的測試在DSP6678上也可得出類似結果;

測試程式碼:
hellofile:

    #include <stdio.h>


    char buf[100 * 1024] = \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" \
            "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";

    int main (int argc, char **argv)
    {
        printf("Hello SylixOS1!\n");
        return  (0);
    }

test:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char **argv)
{
    time_t time1, time2;

    printf("Frequency:%lu\n", Lw_Time_GetFrequency());

    time1 = Lw_Time_Get();
    printf("%d\n", system("/root/hellofile"));
    time2 = Lw_Time_Get();

    printf("run time:%lu\n", (unsigned long)(time2 - time1));

    return  (0);
}