If you see a memory reduction and an increased computation cost, then checkpointing should work correctly.
The memory saving might depend where you put the checkpoints into your model and cannot be generalized, if I’m not mistaken.