Experiment
Want to experiemnt with different datatypes for the slot - maybe use a raw list but with a mini hashtree index like the CDB file
This commit is contained in:
parent
41ee90a2ef
commit
b855401696
1 changed files with 35 additions and 0 deletions
|
@ -981,6 +981,41 @@ generate_randomkeys(Seqn, Count, Acc, BucketLow, BRange) ->
|
||||||
BRange).
|
BRange).
|
||||||
|
|
||||||
|
|
||||||
|
experimental_test() ->
|
||||||
|
io:format(user, "~nExperimental timing test:~n", []),
|
||||||
|
N = 128,
|
||||||
|
KVL1 = lists:ukeysort(1, generate_randomkeys(1, N, 1, 2)),
|
||||||
|
ExtractHashFun =
|
||||||
|
fun({K, V}) ->
|
||||||
|
{_SQN, H} = leveled_codec:strip_to_seqnhashonly({K, V}),
|
||||||
|
{{hash, H}, K} end,
|
||||||
|
HashList = lists:map(ExtractHashFun, KVL1),
|
||||||
|
|
||||||
|
SWA0 = os:timestamp(),
|
||||||
|
Tree = gb_trees:from_orddict(KVL1),
|
||||||
|
BloomAddFun =
|
||||||
|
fun({H, K}, Bloom) -> leveled_tinybloom:tiny_enter(H, K, Bloom) end,
|
||||||
|
_Bloom = lists:foldr(BloomAddFun,
|
||||||
|
leveled_tinybloom:tiny_empty(),
|
||||||
|
HashList),
|
||||||
|
SlotBin = term_to_binary(Tree, [{compressed, ?COMPRESSION_LEVEL}]),
|
||||||
|
io:format(user,
|
||||||
|
"Created slot in ~w microseconds~n",
|
||||||
|
[timer:now_diff(os:timestamp(), SWA0)]),
|
||||||
|
|
||||||
|
% {TestK1, TestV1} = lists:nth(16, KVL1),
|
||||||
|
{TestK2, TestV2} = lists:nth(64, KVL1),
|
||||||
|
% {TestK3, TestV3} = lists:nth(96, KVL1),
|
||||||
|
SWA1 = os:timestamp(),
|
||||||
|
Slot0 = binary_to_term(SlotBin),
|
||||||
|
{value, TestV2} = gb_trees:lookup(TestK2, Slot0),
|
||||||
|
io:format(user,
|
||||||
|
"Looked in slot in ~w microseconds~n",
|
||||||
|
[timer:now_diff(os:timestamp(), SWA1)]).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
merge_test() ->
|
merge_test() ->
|
||||||
N = 3000,
|
N = 3000,
|
||||||
KVL1 = lists:ukeysort(1, generate_randomkeys(N + 1, N, 1, 20)),
|
KVL1 = lists:ukeysort(1, generate_randomkeys(N + 1, N, 1, 20)),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue