I currently try to speed up my script by using
bpy.context.object.copy()
instead of
bpy.ops.object.duplicate(linked=False, mode='DUMMY')
It really is a lot faster, but I don't seem to be able to join the copies without linking them into the scene and calling for a scene update. bpy.ops.object.join() doesn't work, I guess because the copies are just data sets flying around in memory and not being linked to the scene. Updating the scene and joining afterwards is not an option because it's as slow using the .duplicate() function.
Is there any option how I could join my copies without updating the scene? Thanks a lot!