Well, if you need to move some water from here to there would you use a spoon or a bucket?
If you are currently calling the function for every single contact then passing all the information at once should be faster. That just seems logical. But I don't know all the details of the interface in question, so can only guess...