Вероятно, немного быстрее с циклом внутри функции, поскольку существует (небольшая) стоимость каждого вызова функции. Тем не менее, это не будет иметь большого значения.
Это действительно преждевременная оптимизация, а корень всего зла .
Вы должны написать это так, чтобы было ясно, а затем, если он слишком медленный, выясните, где он медленный, и оптимизируйте его.