import bpy import timeit def get_active_layers(): for area in bpy.context.screen.areas: if area.type == "VIEW_3D": v3d = area.regions.data.spaces.active break layers = [] for x in range(20): if v3d.layers[x] is True: layers.extend([x]) return layers def test1(): layers = get_active_layers() objlist = bpy.context.scene.objects for myobj in objlist: if myobj.hide is False: if 'MeasureGenerator' in myobj: # verify visible layer for x in range(0, 20): if myobj.layers[x] is True and x in layers: op = myobj.MeasureGenerator[0] #draw_segments(context, myobj, op, region, rv3d) break def test2(): layers = get_active_layers() objlist = bpy.context.scene.objects for myobj in objlist: if myobj.hide is False: if 'MeasureGenerator' in myobj: # verify visible layer for x in range(0, 20): if myobj.layers[x] is True: if x in layers: op = myobj.MeasureGenerator[0] #draw_segments(context, myobj, op, region, rv3d) break print() print("test1:", timeit.timeit("test1()", setup="from __main__ import test1")) print("test2:", timeit.timeit("test2()", setup="from __main__ import test2"))