When reading a tar archive from a stream for each record a new buffer is allocated. This will cause many new objects that later get collected by the garbage collector. The same issue exists when we are skipping entries. Instead of allocating new buffers we could reuse one single buffer. This saves some GC overhead as well as the time needed to allocate new memory. I created a small patch fixing this issue. I did not test this patch thoughtfully, but it should not cause any trouble, as the buffers never leave their respective classes.