Interesting! Here’s what I get from this simple script on an empty new font:
import time
start = time.time()
Font.disableUpdateInterface()
for i in range(100):
Font.instances.append( GSInstance() )
print("Appending: %s seconds" % (time.time() - start))
Font.enableUpdateInterface()
Font.disableUpdateInterface()
start = time.time()
for i in range(50):
Font.removeInstance_(Font.instances[49-i])
print("Font.removeInstance_: %s seconds" % (time.time() - start))
Font.enableUpdateInterface()
Font.disableUpdateInterface()
start = time.time()
for i in range(50):
del( font.instances[49-i] )
print("del(font.instances): %s seconds" % (time.time() - start))
Font.enableUpdateInterface()
Glyphs 3:
Appending: 0.0035860538482666016 seconds
Font.removeInstance_: 0.0017080307006835938 seconds
del(font.instances): 1.7925388813018799 seconds
Glyphs 2:
Appending: 0.00457906723022 seconds
Font.removeInstance_: 0.00204801559448 seconds
del(font.instances): 0.00971293449402 seconds