In CircuitPython 3.x we've changed the way objects are saved in memory. We now separate them into two different sides of the heap so that long lived objects are stored next to one another. This reduces fragmentation which allows for larger objects to be allocated later in your code. This fragmentation is visible at the end of every sweep, when old objects are swept away and the memory is considered free again.
Visit the Adafruit shop online: adafruit.com