looking at the commits, it seems the jacksonmj made it that it only searchs for elements that are in use, so when there are no elements in use that means no elements it has to look for meaning, no lag
If you put tpt.setdebug(1) into the console in the latest beta, it will draw a transparent overlay showing which entries in the parts array are in use (one pixel=one particle, white=in use). There are 235008 entries in the parts array. Notice that in most saves, a lot of them are unused, so a lot of unnecessary work was being done by checking them.