美文网首页
测试本地ets、dets写入和读取速度

测试本地ets、dets写入和读取速度

作者: 码农工号9527 | 来源:发表于2019-05-29 16:56 被阅读0次

    ets 测试10000000条数据

    -module(test).
    -compile(export_all).
    -define(TAB, tab_name).
    %测试ets查询性能
    test_ets(Num, Msg) ->
        ets:new(?TAB, [named_table,public]),
        
        InsertCostTime = timer:tc(?MODULE,insert, [Num, Msg]),
        LookupCostTime = timer:tc(?MODULE,lookup, [Num]),
        ets:delete(?TAB),
        {{insert, InsertCostTime},{lookup, LookupCostTime}}.
     
     
    insert(Num, _Msg) when Num =< 0 ->    
        ok;
    insert(Num, Msg) ->
        ets:insert(?TAB, {Num, Msg}),
        insert(Num - 1, Msg).
     
     
    lookup(Num) when Num =< 0 ->
        ok;
    lookup(Num) ->
        ets:lookup(?TAB, 50),
        lookup(Num -1).
    

    erlang shell

    $ erl
    Eshell V8.3  (abort with ^G)
    1> c(test).
    {ok,test}
    2> test:test_ets(10000000, "test").
    {{insert,{15172000,ok}},{lookup,{1219000,ok}}}
    

    由于dets速度太慢,测试1000000条数据

    -module(test).
    -compile(export_all).
    -define(TAB, dets_test).
    %测试dets查询性能
    test_dets(Num, Msg) ->
        dets:open_file(?TAB, [{type, set},{keypos, 1},{file,"dets_test.dets"}]),
        InsertCostTime = timer:tc(?MODULE,insert, [Num, Msg]),
        LookupCostTime = timer:tc(?MODULE,lookup, [Num]),
        dets:close(?TAB),
        {{insert, InsertCostTime},{lookup, LookupCostTime}}.
     
     
    insert(Num, _Msg) when Num =< 0 ->    
        ok;
    insert(Num, Msg) ->
        dets:insert(?TAB, {Num, Msg}),
        insert(Num - 1, Msg).
     
     
    lookup(Num) when Num =< 0 ->
        ok;
    lookup(Num) ->
        dets:lookup(?TAB, 50),
        lookup(Num -1).
    
    search(Num) ->
        dets:lookup(?TAB, Num).
    

    erlang shell

    $ erl
    Eshell V8.3  (abort with ^G)
    1> c(test).
    {ok,test}
    2> test:test_dets(10000,"test").
    {{insert,{188000,ok}},{lookup,{156000,ok}}}
    3> test:test_dets(1000000,"test").
    {{insert,{27282000,ok}},{lookup,{19078000,ok}}}
    

    相关文章

      网友评论

          本文标题:测试本地ets、dets写入和读取速度

          本文链接:https://www.haomeiwen.com/subject/lqoytctx.html