anchor.diff:                     ets            = ?required(mem_info, ets)            :: pos_integer()
                     }).
   
  +%% @doc Creates an uncompressed binary of a list of Size integers starting at I.
   -spec make_binary(I::integer(), Size::non_neg_integer()) -> binary().
   make_binary(I, Size) when Size >= 0->
       Res = erlang:term_to_binary(lists:seq(I, I + Size)),
   %%     ct:pal("binary size: ~B", [erlang:byte_size(Res)]),
       Res.
   
  +%% @doc Prints information about the given ets table ID and compares it with
  +%%      the total Erlang VM memory stats.
   print_table_info(Table) ->
       print_table_info(Table, "").
   
  +%% @doc Prints information about the given ets table ID and compares it with
  +%%      the total Erlang VM memory stats (prefixes the message with Status). 
   print_table_info(Table, Status) ->
       Memory = ets:info(Table, memory),
       ContentSize = lists:sum([byte_size(element(2,X)) || X <- ets:tab2list(Table), is_binary(element(2, X))]),
  
positive.code:     Config.
  
  end_per_testcase(_TestCase, Config) ->
      ct:pal("Memory before unittest_helper:stop_ring/0:~n~p~n", [erlang:memory()]),
      unittest_helper:stop_ring(),
      garbage_collect_all(),
      ct:pal("Memory after unittest_helper:stop_ring/0:~n~p~n", [erlang:memory()]),
  
negative.code:     check_memory_inc(PrevMemInfo, NewMemInfo, (End - Start + 1), MyBinSize),
      ok.
  
  create_ring_100(Config) ->
      % stop the initial ring (the ring is needed to initialise atoms etc.)
      unittest_helper:stop_ring(),
      garbage_collect_all(),
  
      {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
      OldProcesses = unittest_helper:get_processes(),
      PrevMemInfo = get_meminfo(),
      util:for_to(
        1, 100,
        fun(_I) ->
                unittest_helper:make_ring(1, [{config, [{log_path, PrivDir}, {monitor_perf_interval, 0}]}]),
                unittest_helper:stop_ring()
        end),
      garbage_collect_all_and_check(10, PrevMemInfo, 0, 0),
      NewMemInfo = get_meminfo(),
      NewProcesses = unittest_helper:get_processes(),
      {_OnlyOld, _Both, OnlyNew} =
          util:split_unique(OldProcesses, NewProcesses,
                            fun(P1, P2) ->
                                    element(1, P1) =< element(1, P2)
                            end, fun(_P1, P2) -> P2 end),
      ?equals(OnlyNew, []),
  %%     ct:pal("~p~n", [erlang:memory()]),
      check_memory_inc(PrevMemInfo, NewMemInfo, 0, 0),
      ok.
  
  %% @doc Starts garbage collection for all processes.
  garbage_collect_all() ->
      _ = [erlang:garbage_collect(Pid) || Pid <- processes()],
      % wait a bit for the gc to finish
  