remove_doubles take a lot of time

I have hudreds of remove_doubles in this code


for ar in result:
            for idx in ar:
                self.m_obj_bmesh.faces [ idx ].select = True      
            
            bpy.ops.mesh.remove_doubles()
            self.m_obj_bmesh.faces.ensure_lookup_table()
            bpy.ops.mesh.select_all(action = 'DESELECT')

but its run too slow

https://i.imgur.com/CTqcSVZ.gif