cache reader to reduce the stress on gc