I have a script that parses a text file and creates the objects specified. The object creation should theoretically be O(1).
This method is the only thing other than an if quick unrelated if statement to set a Boolean and there's an increment of an int after that I included in my timing bounds.
def createAtom(aType,location):
bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=4,size=atomProps[aType]['size']/100.0,location=location)
ob = bpy.context.object
for polygon in ob.data.polygons:
polygon.use_smooth = True
if len(aType): ob.active_material = atomProps[aType]['material']
ob.parent = empty
ob.name = str(currAtom)
as you can see, it doesn't iterate over anything except for setting smooth shading, and with that loop commented out it still increases pretty drastically over time.
The anomaly with the bond times is that sometimes there are double bonds, so it takes twice as long.