Вызов allocateObject съедает 40Mb памяти, которая по истечении времени так и не освободится. Повторный вызов съедает еще 13Mb. Тут для примера взят совсем примитивный компонент. В реальности компонент намного сложнее. И конечно не 30000 их создается.
И как же тогда быть с памятью?
Objects are not destroyed the instant destroy() is called, but are cleaned up sometime between the end of that script block and the next frame (unless you specified a non-zero delay).
Может попробовать?
C++ (Qt)
object.destroy(0);