erlang各种有用的函数包括一些有用nif封装,还有一些性能测试case。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1.3 KiB

4 years ago
  1. -module(utTestChange).
  2. -compile([export_all]).
  3. -record(test, {a, b, c, d}).
  4. test() ->
  5. A = #test{a = 1, b = <<"abcdefg">>, c = 1, d = 0},
  6. io:format("IMY*********************t111 ~p ~p~n", [binaryAddr:getBinAddr(A#test.b), A]),
  7. B = A#test{a = 2},
  8. io:format("IMY*********************t222 ~p ~p~n", [binaryAddr:getBinAddr(B#test.b), B]),
  9. C = A#test{c = 2},
  10. io:format("IMY*********************t333 ~p ~p~n", [binaryAddr:getBinAddr(C#test.b), C]),
  11. Key = <<"aaaaaaaa">>,
  12. A1 = #{a => 1, b => <<"abcdefg">>, c => 1, Key => aa},
  13. keyAddr(A1, kkk111),
  14. io:format("IMY*********************m111 ~p ~p~n", [binaryAddr:getBinAddr(maps:get(b, A1)), A1]),
  15. B1 = A1#{a := 2},
  16. keyAddr(B1, kkk222),
  17. io:format("IMY*********************m222 ~p ~p~n", [binaryAddr:getBinAddr(maps:get(b, B1)), B1]),
  18. C1 = A1#{c := 2},
  19. keyAddr(C1, kkk3333),
  20. io:format("IMY*********************m333 ~p ~p~n", [binaryAddr:getBinAddr(maps:get(b, C1)), C1]),
  21. D1 = maps:put(tt, vv, A1),
  22. keyAddr(D1, kkk4444),
  23. io:format("IMY*********************m444 ~p ~p~n", [binaryAddr:getBinAddr(maps:get(b, C1)), D1]).
  24. keyAddr(Map, Tag) ->
  25. List = maps:keys(Map),
  26. [begin io:format("IMY********************* ~p ~p~n", [Tag, binaryAddr:getBinAddr(Key)]) end || Key <- List, is_binary(Key) ].