rename live_num to marked_num to make it more clear
do_heap_free = max(do_heap_free, initial_free_min)