onMove Optimization

Hi folks! I am recreating an appkit app I made on iOS SwiftUI (got a newer computer!), so both recreating on swiftui and switching to iOS.

Now I've just made a list within a view struct that utilizes the onMove modifier. But I have to send out a socket update each time the list changes so I had to include that function call to a singleton within the move function:

private func move(from source: IndexSet, to destination: Int) {
    songManager.setList.move(fromOffsets: source, toOffset: destination)
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
        SocketManager.shared.updateSetlist(setlistData: songManager.setList)
        if destination < songManager.setList.count {
            songManager.selectedSetlistIndex = destination
        } else {
            songManager.selectedSetlistIndex = songManager.setList.count - 1
        }
    }
}

It is so slow! I haven't been able to test it outside of simulator yet, but judging by the difference between how it was before move had additional f'n and now it will be bad on the device as well. I would really rather not go through the trouble refactoring my list as a scrollview and lazyvstack but seem to be hitting a wall with this performance. Any tips?

fyi in my original appkit implementation it was all done through the tableview methods which were pretty robust but it's just completely different animal here.