mstore_inspector
In inspector tool for mstore-files (not mstores!) that allows comparing, and gathering some information on them.
Build
$ rebar3 escriptizeRun
$ _build/default/bin/mstore_inspector --helpFile Format
The index file generated looks like:
<<
SizePerSection:64, %% size of each bitmap (this includes the prefix!)
SizeOfIndex:64, %% size of the index section
Index:SizeOfIndex/binary, %% index Section
Bitmaps/binary %% bitmaps
>>.Bitmaps are stored using the bitmap library
Index section
<<
Size:32, %% Size of this entry
Element:Size, %% Entry
Rest/binary %% The rest
>>.Comparison logic
We sort the indexes then iterate through them, if we see one on the left and not the right (or visa versa) we known the entire metric is missing. If both er present we use bitmap:diff/2 to diff the two bitmaps.
We fail early if the SizePerSection differs.
Diffs are visualised using the bitmap:visualize/4 function.
If there is no difference we don’t need to visualise.
For per metric comparison it’s a lot easier.
Left always refers to the 1st file and right to the 2nd file.